【问题标题】:javascript regular expression whitespace class not matched but space is matched [duplicate]javascript正则表达式空白类不匹配但空格匹配[重复]
【发布时间】:2016-02-22 16:56:40
【问题描述】:

这给了我一个错误

let templateUrlReg = new RegExp("templateUrl:\s+(.+)");
let templateUrlRes = templateUrlReg.exec("templateUrl: 'components/search/search.html'");
console.log(templateUrlRes[0]);
console.log(templateUrlRes[1]);

TypeError: 无法读取 null 的属性“0”

当我将第一行更改为:

let templateUrlReg = new RegExp("templateUrl: (.+)");

我明白了。

这里有什么问题? \s 不应该是普通空间的超集吗?

【问题讨论】:

  • 使用var templateUrlReg = /templateUrl:\s+(.+)/;
  • 我认为它正在对\s 进行字符转义。你可以试试\\s
  • 感谢阿努巴瓦。和艾米。两者都有效

标签: javascript regex


【解决方案1】:

使用双引号时需要使用双反斜杠,试试:

let templateUrlReg = new RegExp("templateUrl:\\s+(.+)");

MDN description的最后一段解释

【讨论】:

    猜你喜欢
    • 2017-05-09
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2017-04-05
    • 1970-01-01
    相关资源
    最近更新 更多