我有以下句子:
One Flew Over the Cuckoo's Nest
我想从句子中删除"the"
和"'"
的任何实例,以便输出如下:
预期输出:
one flew over cuckoos nest
我使用以下代码:
var guess = "One Flew Over the Cuckoo's Nest";
guess = guess.toLowerCase().replace("'", "").replace("the", "");
实际输出:
one flew over cuckoos nest
问题是在"over"
之后出现了一个空格,因为我只是从那个特定的句子中移除"the"
而不是之后的空格。
我知道我可以使用replace("the ", "");
来解决这个问题,但我希望有更好的方法来实现这一目标。
我可以使用正则表达式吗?
答案 0 :(得分:3)
您将遇到的一个问题是replace
仅替换第一个匹配。为了替换所有这些,您需要使用带有g
lobal修饰符的正则表达式。
guess = guess.toLowerCase().replace(/the|'/g,'').replace(/ +/g,' ');
第二个replace
包含两个空格,后跟+
。这将修复由删除的单词引起的任何“损坏”空格。此外,在第一个中,交替用于同时获取the
个单词和撇号。
答案 1 :(得分:2)
我个人会这样做
var guess = "One Flew Over the Cuckoo's Nest";
guess = guess.toLowerCase().replace("'", "").replace(" the", "").replace("the ", "");
我确信这有一些regEx,但似乎有点过分
我不是regEx专家,因此我无法在regEx中为您提供解决方案