Javascript 正则表达式以查找特定的结尾
如果我使用新的正则表达式对象,如下所示:Javascript 正则表达式以查找特定的结尾,javascript,regex,Javascript,Regex,如果我使用新的正则表达式对象,如下所示: for(i=0; i < aray.length; i++){ searchTerm = new RegExp("\\b" + aray[i] + "(e\\b)", "gi"); word = testText.match(searchTerm); if(word){ found.push(word); } } for(i=0;i
for(i=0; i < aray.length; i++){
searchTerm = new RegExp("\\b" + aray[i] + "(e\\b)", "gi");
word = testText.match(searchTerm);
if(word){
found.push(word);
}
}
for(i=0;i
结果数组“found”包含{one,three,piece}。
但是,如果我将其更改为:
for(i=0; i < aray.length; i++){
searchTerm = new RegExp("\\b" + aray[i] + "(e\\b)");
word = testText.match(searchTerm, "gi");
if(word){
found.push(word);
}
}
for(i=0;i
结果数组“found”包含{one,e,three,e,piece,e}。额外的e来自哪里
还有,搜索以“e”或“es”或“et”结尾的单词的最佳方法是什么
额外的e来自哪里
这是由于您的捕获组(e\\b)
使用此正则表达式可以避免:
searchTerm = new RegExp("\\b" + aray[i] + "e\\b");
“最好”的方法是主观的,但我会这么做
如果您只支持IE9及以上版本,那么我强烈建议您使用该方法
正则表达式
(e | es | et)$
大致转换为在字符串末尾查找任何“e”或“es”或“et”。因此,这将匹配任何以“e”、“es”或“et”结尾的单词。请参阅演示。附加的“e”来自找到的行。按(word)
。实际上,match返回一个匹配数组,而不是布尔值。使用test
方法获取布尔值。@皮特,你说得对。阅读更多关于return/(e | es | et)$/i.test(项目)的信息代码>@zyklus很好,不需要“g”标志,因为只有一个结尾。:)
var myArray = [ 'bananna', 'doge', 'doges', 'doget', 'dogets' ]
var results = myArray.filter(function(item) {
return (/(e|es|et)$/i.test(item));
});
console.log(results);