JavaScript -使用变量替换子字符串

JavaScript - replace substring using a variable

本文关键字:替换 字符串 变量 JavaScript      更新时间:2023-09-26
var prefix = 'pre-',
    number = 1,
    combined = prefix + number,
    prefixRemoved = combined.replace('/' + prefix + '/g', '');
console.debug(prefixRemoved);

如何从combined中移除prefix ?我仍然得到pre-1作为结果。

您可以像这样将字符串传递给replace():

prefixRemoved = combined.replace(prefix, '');

或者如果您需要正则表达式上的参数,您可以从字符串创建一个regexp,如下所示:

prefixRemoved = combined.replace(new RegExp(prefix, "g"), '');

或者,您可以先创建regex对象:

var re = new RegExp(prefix, "g");
prefixRemoved = combined.replace(re, '');

您需要创建RegExp对象:

var prefix = 'pre-',
    number = 1,
    combined = prefix + number,
    prefixRemoved = combined.replace(new RegExp(prefix, 'g'), '');
console.debug(prefixRemoved);


为什么会这样:

// this syntax without quotes is shorthand for creating a RegExp object
typeof /aaaa/; // object
/a/ instanceof RegExp; // true
// since String.replace can take a string or a RegExp, it has to assume that any string is just a string 
typeof "/aaaa/"; // string

您不需要正则表达式。只需按原样使用字符串:

var prefix = 'pre-',
    number = 1,
    combined = prefix + number,
    prefixRemoved = combined.replace(prefix, '');
console.debug(prefixRemoved);

实际上不需要使用正则表达式,因为您只是执行字符串替换。

prefixRemoved = combined.replace(prefix, '');

实际操作:http://jsfiddle.net/jjYC8/

你需要prefixRemoved = combined.replace(prefix, '');

var prefix = 'pre-',
    number = 1,
    combined = prefix + number,
    prefixRemoved = combined.replace(prefix, '');
console.debug(prefixRemoved);

直接调用变量。

例子: http://jsfiddle.net/jaffc/