js regexp模式中的多个(?i)和(?-i)修饰符

时间:2018-02-09 21:59:18

标签: javascript node.js regex typescript

我正在使用nodejs v8.9.4和typescript v2.6.2。我想构建一个Regexp,可以打开和关闭区分大小写,例如(?i)(?-i) modifier spans,例如.NET环境。登记/> 我想完成类似的事情:

let value = 'HelloWorld';
let pattern = '(?i)\\b(' + value + ')\\:|' +
    '(?-i)\\b(' + value.toUpperCase() + '|' + value + ')\\b';
let myRegex = new RegExp(pattern, 'g');

myRegex.test('helloworld');  // returns false
myRegex.test('helloworld:'); // returns true
myRegex.test('HELLOWORLD');  // returns true
myRegex.test('HelloWorld');  // returns true

不幸的是 javaScript不支持修饰符跨度

所以我想问有没有办法在javaScript中构建Rexep,就像上面示例的myRegex value可分配/可交换。 欢迎提出每一个提示,谢谢。

1 个答案:

答案 0 :(得分:0)

正如Ryan在评论中所建议的,我将Regexp分为两部分。到目前为止,我没有遇到任何性能问题或类似问题 感谢评论中的人帮忙。