假设我有一个变量,字符串的长度没有固定,有时像
var a = xxxxxxxxhelloxxxxxxxx;
有时候喜欢
var a = xxxxhelloxxxx;
我无法使用substr()
因为位置不相同。
如何在字符串中找到字符串“hello”并在“hello”之后插入字符串“world”? (欢迎使用JavaScript或jQuery中的方法)
由于
答案 0 :(得分:17)
var a = "xxxxhelloxxxxhelloxxxx";
a = a.replace(/hello/g,"hello world"); // if you want all the "hello"'s in the string to be replaced
document.getElementById("regex").textContent = a;
a = "xxxxhelloxxxxhelloxxxx";
a = a.replace("hello","hello world"); // if you want only the first occurrence of "hello" to be replaced
document.getElementById("string").textContent = a;
<p>With regex: <strong id="regex"></strong></p>
<p>With string: <strong id="string"></strong></p>
答案 1 :(得分:4)
这将取代第一次出现
a = a.replace("hello", "helloworld");
如果您需要替换所有匹配项,则需要使用正则表达式。 (末尾的g
标志表示“全局”,因此它会找到所有出现的情况。)
a = a.replace(/hello/g, "helloworld");
答案 2 :(得分:3)
这将取代第一次出现:
a = a.replace("hello", "hello world");
如果您需要替换所有匹配项,请使用正则表达式进行匹配,并使用global(g)标志:
a = a.replace(/hello/g, "hello world");
答案 3 :(得分:2)
var find = "hello";
var a = "xxxxxxxxxxxxxhelloxxxxxxxxxxxxxxxx";
var i = a.indexOf(find);
var result = a.substr(0, i+find.length) + "world" + a.substr(i+find.length);
alert(result); //xxxxxxxxxxxxxhelloworldxxxxxxxxxxxxxxxx
可能。
答案 4 :(得分:1)
你可以使用replace,比indexOf
容易得多var newstring = a.replace("hello", "hello world");
答案 5 :(得分:0)
这是一种避免重复“ hello”模式的方法:
a_new = a.replace(/hello/, '$& world'); // "xxxxxxxxhello worldxxxxxxxx"
$&
是指与整个模式匹配的子字符串。它是替换字符串的几个special $ codes之一。
这是通过replacer function获得相同结果的另一种方法:
a_new = a.replace(/hello/, function (match) { return match + ' world'; });