【问题标题】:Javascript Regex: "Any word" patternJavascript 正则表达式:“任何单词”模式
【发布时间】:2015-06-19 11:31:03
【问题描述】:

在 Jasmine 测试中,我尝试将此匹配设置为适合以下表达式:

'请求<any_word> 获取<any_word> - 打开操作菜单'。

但是,这行是不可能的,但是 Javascript 文档说 \\w 是任何单词的正则表达式:

expect(item.getIconToolTip()).toMatch('Request \\w for \\w - Open actions menu');

有什么提示吗?

【问题讨论】:

  • 定义“单词”。单词中应该允许哪些字符?例如,risqué 是一个词吗?

标签: javascript regex testing jasmine karma-jasmine


【解决方案1】:

使用+ 重复上一个令牌一次或多次。 \\w 仅匹配单个单词字符。

expect(item.getIconToolTip()).toMatch('Request \\w+ for \\w+ - Open actions menu');

【讨论】:

  • \w+ 不会匹配risqué,在这种情况下你需要使用\S+
【解决方案2】:

特殊序列\w 匹配任何单个单词字符,而不是整个单词。您可以使用\b\w+\b 来匹配一个单词,但要准确定义“单词”是什么,您必须根据自己的目的来解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    相关资源
    最近更新 更多