为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScriptRegex:如何在正则表达式中放置变量?

JavaScriptRegex:如何在正则表达式中放置变量?

LEATH 2019-07-03 16:51:01
JavaScriptRegex:如何在正则表达式中放置变量?例如:function(input){     var testVar = input;     string = ...     string.replace(/ReGeX + testVar + ReGeX/, "replacement")}但这当然是行不通的:)有什么办法可以做到吗?
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

可以使用RegExp对象:

var regexstring = "whatever";var regexp = new RegExp(regexstring, "gi");var str = "whateverTest";
var str2 = str.replace(regexp, "other");document.write(str2);

然后你可以构造regexstring以任何你想要的方式。

你可以读到更多关于它的内容。这里.


查看完整回答
反对 回复 2019-07-03
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

要从JavaScript中的变量构建正则表达式,需要使用RegExp具有字符串参数的构造函数。

function reg(input) {
    var flags;
    //could be any combination of 'g', 'i', and 'm'
    flags = 'g';
    return new RegExp('ReGeX' + input + 'ReGeX', flags);}

当然,这是一个很幼稚的例子。它假设input已正确转义为正则表达式。如果您正在处理用户输入,或者只是希望更方便地匹配特殊字符,则需要转义特殊字符:

function regexEscape(str) {
    return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')}function reg(input) {
    var flags;
    //could be any combination of 'g', 'i', and 'm'
    flags = 'g';
    input = regexEscape(input);
    return new RegExp('ReGeX' + input + 'ReGeX', flags);}


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 1041 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信