javascript - 在正则表达式中转义变量

标签 javascript regex

<分区>

我正在尝试获取输入文本字段的值并在正则表达式中使用它。这是我必须匹配行首的内容。

regex = new RegExp('^' + inputValue, 'i')

它适用于以字母数字字符开头的常规字符串,但我也将其用于美元金额。当输入字段以“$”(美元符号)开头时,我会得到不同的结果。

如何将上面的变量转义为一个简单的字符串?我已经试过了,但没有成功:

regex = new RegExp('^[' + inputValue + ']', 'i')

最佳答案

可能是我见过的更好的实现之一

http://phpjs.org/functions/preg_quote:491

为后代复制如下

function preg_quote (str, delimiter) {
    // Quote regular expression characters plus an optional character  
    // 
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/preg_quote    // +   original by: booeyOH
    // +   improved by: Ates Goral (http://magnetiq.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // *     example 1: preg_quote("$40");
    // *     returns 1: '\$40'
    // *     example 2: preg_quote("*RRRING* Hello?");
    // *     returns 2: '\*RRRING\* Hello\?'
    // *     example 3: preg_quote("\\.+*?[^]$(){}=!<>|:");    // *     returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:'
    return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&');
}

关于javascript - 在正则表达式中转义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621825/

相关文章:

c++ - 从字符串 C++ 中删除元音

javascript - 正则表达式为 2 个相同长度的数字,用破折号分隔

javascript - 对 Javascript 数组进行分组

javascript - 从 mongodb 回调将值设置为外部变量

javascript - 使用 fs.read 时没有将值返回到 console.log

php - 如何在 PHP 中验证电子邮件?

Java转义转义序列

javascript - 如何使用 jQuery 访问以编程方式生成的元素

javascript - AngularJS - 如何在复选框选择上显示/隐藏表格列 - 从嵌套的 ng-repeat 生成

python - 如何使用python中的正则表达式匹配两个单词之间的所有字符(包括新行)?