JS实现replaceAll

今天在codewars上尝试解决一个小问题,题目是要求把一行文字里的所有元音字母替换掉,心想这个应该挺简单的吧,一个replaceAll应该就可以了,结果发现JS里面没有带replaceAll这个方法,想通过for循环实现起来效率太低了,于是就google了一下,发现replace方法是支持正则表达式替换的,就是把所有匹配到的结果都替换掉,我们来看一下我的实现(方法太渣。。后面有大神的终极方法):

function disemvowel(str) {
  var s = str
  var vowels = new Array('a','i','e','u','o','A','I','E','U','O')
  for(i in vowels)
  {
    s = s.replace(new RegExp(vowels[i],"g"),'')
  }

  return s
}

RegExp的”g”参数代表匹配所有符合的位置。
来看看大神的实现,果然言简意赅:

function disemvowel(str) {
  return str.replace(/[aeiou]/gi, '');
}

博主开通了微信公众号,欢迎关注啦

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.