5

我需要编写一个正则表达式来与 JS .match() 函数一起使用。目标是检查具有多种选择的字符串。例如,如果 mystr 包含 word1 或 word2 或 word3,我想在下面的代码中返回 true

mystr1 = "this_is_my_test string_containing_word2_where_i_will_perform_search";
mystr2 = "this_is_my_test string_where_i_will_perform_search";
myregex = xxxxxx; // I want help regarding this line so that 
if(mystr1.match(myregex)) return true; //should return true
if(mystr2.match(myregex)) return true; //should NOT return true

请问有什么帮助吗?

4

3 回答 3

11

|所以在你的 RegEx 中使用 OR :

myregex = /word1|word2|word3/;
于 2013-01-11T15:52:47.740 回答
1

正则表达式是:/word1|word2|word3/

请注意,除了您的代码可以工作之外,您实际上并没有使用您需要的方法。

  • string.match(regex)-> 返回一个匹配数组。当评估为布尔值时,它会在为false空时返回(这就是它起作用的原因)。
  • regex.test(string)-> 是你应该使用的。它评估字符串是否与正则表达式匹配并返回 a trueor false
于 2013-01-11T15:56:23.807 回答
0

如果您不使用匹配项,那么我可能会倾向于使用该test()方法并包括i标志。

if( /word1|word2|word3/i.test( mystr1 ) ) return true; //should return true
if( /word1|word2|word3/i.test( mystr2 ) ) return true; //should NOT return true
于 2013-01-11T15:56:55.173 回答