【问题标题】:Regex test with parentheses [duplicate]带括号的正则表达式测试[重复]
【发布时间】:2019-06-29 07:28:31
【问题描述】:

我有这样的代码:

  var value = "Mary Jane (Asistant)";
  var regex = new RegExp(value);
  regex.test("Some String to Test");

我想测试我的正则表达式。当我关闭括号时它可以工作。但是当我测试例如“Mary Jane(Asistant”)的值时它会抛出错误。

正则表达式无效:/Mary Jane (Asistant/: Unterminated group.

我怎样才能摆脱这个错误?

【问题讨论】:

  • 您自己提到了解决方案:关闭群组。除非你想匹配文字括号。然后您必须转义文字字符串以用作正则表达式模式的一部分。
  • 你需要像()这样的转义元字符和\
  • 试试\( 而不是(
  • 我建议您在实时预览网站(如 regex101.com)上测试您的正则表达式,在那里您会收到详细的错误消息regex101.com/r/4YoBIe/1

标签: javascript jquery regex


【解决方案1】:

试试这个

var value = "Mary Jane \\(Asistant\\)";
var regex = new RegExp(value);

console.log(regex.test("Some String to Test"));
console.log(regex.test("Mary Jane (Asistant)"));

或者这个

var value = /Mary Jane \(Asistant\)/;
var regex = new RegExp(value);

console.log(regex.test("Some String to Test"));
console.log(regex.test("Mary Jane (Asistant)"));

请记住,value 包含正则表达式模式,而括号 () 等一些字符具有特殊含义,需要像上面的 sn-ps 中一样进行转义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多