在Javascript中添加多个变量以使用RegEx函数
Add more than one variable in Javascript to work with the RegEx function
这篇文章详细介绍了如何在正则表达式中包含变量,但它只展示了如何包含一个变量。我目前正在使用正则表达式的match函数来查找前导字符串和尾随字符串之间的字符串。我的代码如下:
array = text.match(/SomeLeadingString(.*?)SomeTrailingString/g);
现在,我如何构建一个具有与此相同功能的正则表达式,但不是在表达式中实际使用两个字符串,而是希望能够在外部创建它们,如下所示:
var startString = "SomeLeadingString"
var endString = "SomeTrailingString"
所以,我的最后一个问题是,如何将startString和endString包含在上面列出的正则表达式中,以便功能相同?谢谢
使用RegExp
对象将字符串连接到regex
const reg = new RegExp(`${startString}(''w+)${endString}`,"g");
const matches = text.match(reg);
注意
连接字符串时,建议转义none regex字符串:(转义模式取自此答案)
const escapeReg = (str)=>str.replace(/[-'/''^$*+?.()|[']{}]/g, '''$&');
示例
我们有字符串(.*)hello??
,我们想在(.*)
和??
之间匹配单词
我们会做一些类似的事情:
const prefix = "(.*)";
const suffix = "??";
const reg = new RegExp(`${escapeReg(prefix)}(''w+)${escapeReg(suffix)}`);
const result = "(.*)hello??".match(reg);
if(result){
console.log(result[1]); //"hello"
}
相关文章:
- 在Javascript中添加多个变量以使用RegEx函数
- jQuery函数中的Regex将匹配ID+任何数字
- Angularjs, lexerr Lexer 错误:如何将电子邮件地址(regex)传递给函数
- Regex exec函数在Javascript中未返回正确的结果
- Javascript和RegEx:match函数返回一个数组
- JavaScript REGEX 使用自定义函数扩展 '/pattern/'
- Regex/Javascript函数将价格存储为基于美分的数字
- RegEx for Javascript(替换函数)只允许字母和空格,但不允许以空格开头
- Javascript:每100个区块文本运行一个Regex匹配函数
- 为什么regex构造函数需要进行双转义
- regex.test()函数没有给出正确的结果
- Regex函数使单词标题大小写(包括连字符)
- Regex:如何匹配除test()之外的所有函数调用
- JavaScript重新编译函数中regex文本的频率
- 在IF函数中使用REGEX
- Regex解析Javascript函数调用式语法
- RegEx的最大长度与点和替换函数在JavaScript
- Regex解释和javascript's替换函数.我们为什么需要抓捕小组
- Regex来匹配函数和函数调用,但不包括JavaScript关键字
- 这个RegEx函数中的内存问题是什么?