JS正则表达式中的一行匹配问题

17

这个.NET代码在JavaScript中的等效代码是什么?

var b = Regex.IsMatch(txt, pattern);
4个回答

40

以下是使用正则表达式的有用函数。

  • exec:执行一个字符串匹配搜索,并返回一个包含信息的数组。
  • test:测试字符串是否符合匹配模式,并返回 true 或 false。
  • match:在字符串中搜索匹配项,并返回一个包含信息的数组或在不匹配时返回 null。
  • search:搜索匹配项在字符串中的索引并返回,如果搜索失败,则返回 -1。
  • replace:搜索匹配项并用替换字符串替换匹配到的子串。
  • split:使用正则表达式或固定字符串拆分字符串为一个子字符串的数组。

来源:MDN

所以,像其他人已经说过的那样,为了回答您的问题:

/pattern/.test(txt)

或者,如果对于您特定的使用方式更方便,这个等价:

txt.search(/pattern/) !== -1

感谢您的时间和努力 :) - Ahmed Mahmoud

8
var b = /pattern/.test(txt);

感谢您的时间和努力 :) - Ahmed Mahmoud

2
/pattern/.test(txt);

E.g.:

/foo \w+/.test("foo bar");

它会像IsMatch一样,对于匹配结果返回true。

1
var regex = new RegExp(pattern);
var b = regex.test(text);

你也可以使用var b = /pattern/.test(text),但是这样就不能为正则表达式模式使用变量了。


不是的,这是一个“引用错误”。;) - Matthew Flaschen
1
你能不能把这个改成一行代码,写成 var b = (new RegExp(pattern)).test(text); - Mark Elliot
@Matthew Flaschen:已更正。 - Brock Adams
@Mark 我在谈论/pattern/语法。 - Na7coldwater

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接