JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
Part of String Case Insensitive in JavaScript Regex (?i) option not working
我正在使用Nodejs来构建应用程序,我需要在其中处理某些字符串。为此,我使用了JS"RegExp"对象。我只希望正则表达式中字符串的一部分是不区分大小写的
var key = '(?i)c(?-i)ustomParam';
var find = ''{(''b' + key +'''b:?.*?)'}';
var regex = new RegExp(find,"g");
但它打破了以下错误
SyntaxError:无效的正则表达式:/{(''b(?i)c(?-i)customParam''b:?.*?)}/
我将从一些外部来源(如redis)获得密钥,并从其他外部来源获得要匹配的字符串,我希望第一个字母表应不区分大小写,其余字母表应区分大小写。
当我从外部源获得密钥时,我会在第一个字母表之前附加(?I),在第一个字符表之后附加(?-I)。
我甚至试过这个只是为了初学者,但也不起作用
var key ='customParam';
var find = '(?i)'{(''b' + key +'''b:?.*?)'}(?-i)';
var regex = new RegExp(find,"g");
我知道我可以使用"I"标志而不是上面的标志,但这不是我的用例。我这么做只是为了检查一下。
JavaScript内置的RegExp
不支持内联修饰符,就像(?im)
一样,更不用说可以将放置在模式内任何位置的内联修饰符组了(比如(?i:....)
)。
即使XRegExp也不能提供此功能,您只能在整个模式上使用(?i)
,在模式开始时声明它。
在XRegExp中,您可以将正则表达式ONLY定义为
var regex = XRegExp('(?i)''{(''b' + key +'''b:?.*?)''}', 'g');
2020年5月27日,JavaScript原生RegExp和XRegExp模式仍然都不支持内联修饰符组(即(?i:...)
),也不支持将它们放在模式的任何部分(就XRegExp而言)。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 不区分大小写的提示即使使用 toLowerCase也不起作用
- 不区分大小写的字符串搜索不起作用