删除字符串中的原音字符


DESCRIPTION

Trolls are attacking your comment section!

A common way to deal with this situation is to remove all of the vowels from the trolls’ comments, neutralizing the threat.

Your task is to write a function that takes a string and return a new string with all vowels removed.

For example, the string “This website is for losers LOL!” would become “Ths wbst s fr lsrs LL!”.

Note: for this kata y isn’t considered a vowel.

SOLUTION

  • 方法一:字符串的 replace()replaceAll() 方法都可,这两个方法都是返回一个新的字符串。

replace() 字符串模式只会被替换一次。要执行全局搜索和替换,请使用带有 g 标志的正则表达式或使用 replaceAll()。

1
2
3
4
5
6
function disemvowel(str) {
let regex = /aeiou/gi;
let result = str.replace(regex, "");
// let result = str.replaceAll(regex, "");
return result;
}
  • 方法二:全部写在一行!
1
2
3
function disemvowel(str) {
return str.replace(/[aeiou]/gi, "");
}
  • 方法三:箭头函数。
1
disemvowel = (str) => str.replace(/[aeiou]/gi, "");

Tips

正则表达式:

元字符 [xyz] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
修饰符 i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
修饰符 g global - 全局匹配 查找所有的匹配项。

Reference

Disemvowel Trolls
String.prototype.replace()
String.prototype.replaceAll()
正则表达式 - 元字符
正则表达式 - 修饰符(标记)