jQuery如何使用变量替换文本?

10
我想要对这样一个字符串进行替换:

我正在尝试对一个字符串进行替换:

$('#example_id').replace(/abc123/g,'something else')

但是abc123实际上需要是一个变量。

因此,类似于以下内容:

var old_string = 'abc123'
$('#example_id').replace(/old_string/g,'something else')

那么我如何在替换函数中使用变量?


你需要使用正则表达式吗?如果是这样,请注意,如果旧字符串包含任何有意义的正则表达式字符,例如 ()*.- 等,则需要进行转义,否则可能会破坏你的替换操作。 - Sam Greenhalgh
4个回答

22

首先$('#example_id')会给你一个jQuery对象,你需要替换它html或value中的字符串。尝试这个。

var re = new RegExp("abc123","g");
$('#example_id').html($('#example_id').html().replace(re, "something else"));

2

还有一种使用RegExp对象的替换方法。这个对象可以由字符串文字构建:

var old_string = "abc123";
var myregexp = new RegExp(old_string,'g');
$('#example_id').replace(myregexp,'something else')

这里有一些有用的信息,点击此处查看。


0
创建一个 RegExp 对象:
var regexp = new RegExp(old_string, 'g');
$('#example_id').replace(regexp,'something else');

编辑:修复参数


RegExp的构造函数不需要前导和尾随的/,而且g应该作为第二个参数传入。Javascript RegExp对象 - Sam Greenhalgh

0

你可以使用构造函数创建正则表达式。

var re = new RegExp('abc123', 'g')
$('#example_id').replace(re,'something else')

这里是RegExp文档。

要替换元素的内部 HTML 内容,您可以使用 html 方法:

$('#example_id').html(function(i, s){return s.replace(re, 'replace with')})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接