如何在javascript中删除字符串中的元音而不超时?
我试图解决一个挑战,问题只是javascript中的搜索和删除,我是javascript的新手。我写了这封信,但执行超时了。为什么?我怎样才能使它正确呢如何在javascript中删除字符串中的元音而不超时?,javascript,search,Javascript,Search,我试图解决一个挑战,问题只是javascript中的搜索和删除,我是javascript的新手。我写了这封信,但执行超时了。为什么?我怎样才能使它正确呢 函数disemvowel(str){ var strSplit=str.split(“”); 对于(变量i=0;i
函数disemvowel(str){
var strSplit=str.split(“”);
对于(变量i=0;i }
您不必重复这么多。执行超时,因为代码中有很多不必要的循环
function disemvowel(str) {
return str.replace(/[aeiou]+/ig, '');
}
这将用零替换每个元音,并返回不带元音的字符串。不需要这样做,只需使用正则表达式删除元音即可
var stringWithoutVowel=str.replace(/[aeiou]/ig,'');
正则表达式
/\/a/
将替换/a
s,即前斜杠前面的a
s。这与只搜索一个字符a
的.search(“a”)
不同-这将导致无限循环
另一个问题是.search
如果字母位于字符串的第0个索引处(falsey),则返回0
;如果字母未在字符串中找到(truthy),则返回-1
。这将导致另一个无限循环
请改用单个正则表达式替换:
const disemvowel = str => str.replace(/[aeiou]/ig, '');
嗯,你想实现什么。。?我在和中看到了太多的
,而
感觉不太好..我想找到输入字符串中的每个元音并删除它们,最后返回一个没有任何元音的字符串它确实会将每个单词中的每个元音都替换为零,除了单词“LOL”,为什么?我忘记了正则表达式中的i
,它没有替换O
,因为正则表达式区分大小写。