如何在正则表达式匹配中放置变量
How to put variable in regular expression match?
我有以下代码片段。我想找到a
的样子,但是不行。我怎样才能把变量放对呢?
var string1 = 'asdgghjajakhakhdsadsafdgawerwweadf';
var string2 = 'a';
string1.match('/' + string2 + '/g').length;
您需要使用RegExp
构造函数而不是正则表达式。
var string = 'asdgghjjkhkh';
var string2 = 'a';
var regex = new RegExp( string2, 'g' );
string.match(regex);
如果您不需要全局修饰符,那么您可以只传递string2
, .match()
将为您创建正则表达式。
string.match( string2 );
如果您只是想检查一个字符串是否包含另一个字符串,那么您最好的选择是简单地使用match()
而不使用regex。
你可以反对:但是我需要一个正则表达式来检查类,如's
,来定义复杂的模式,等等。
在这种情况下:你将需要改变语法更多,双转义你的类和删除开始/结束/
regex指示符符号。
想象一下这个正则表达式…
someString.match(/'bcool|tubular'b);
当使用新的new RegExp()
时,与此完全等价的是…
someStringRegex = new RegExp('''bcool|tubular''b');
在这个转换中发生了两件事:
- 删除打开和关闭
/
(否则,您的正则表达式将失败)。 - 双转义你的字符类,像
'b
变成''b
字边框,'w
变成''w
空白,等等(否则,你的正则表达式将失败)。
下面是另一个例子//确认字符串是否在其末尾包含target(两者都是下面函数中的变量,例如确认str " abstract "是否在末尾包含target "action")
function confirmEnding(string, target) {
let regex = new RegExp(target);
return regex.test(string);
};
相关文章:
- 在正则表达式中使用变量
- Javascript 复杂的正则表达式与变量
- Jquery 替换所有文本语法正则表达式中的变量
- 用于比较 HTML 标记内的变量的正则表达式
- javascript中正则表达式(match)中变量的使用错误
- javascript正则表达式:使用单词边界将变量传递给regexp
- 使用正则表达式中的变量与$和^匹配字符串
- 正则表达式提取PHP中的JavaScript变量
- 调整 javascript 正则表达式以过滤来自 url 的变量
- 什么是用于断开变量可能包含“&”的查询字符串的正则表达式
- jQuery 验证器正则表达式使用数组或变量
- 使用变量中的 gi 标志创建正则表达式
- Javascript 正则表达式从句子中检索变量
- 正则表达式中的变量
- 在 javascript 的正则表达式中使用变量
- 添加另一个变量后,正则表达式替换不起作用
- JavaScript 正则表达式,用于获取以 @ 字符开头的字符串中的变量列表
- 如何在正则表达式中使用变量
- 遍历包含正则表达式的 JavaScript 对象变量
- 保存正则表达式匹配项的全局变量名称是什么