查找子字符串并插入另一个字符串

时间:2011-05-03 05:06:50

标签: javascript string

假设我有一个变量,字符串的长度没有固定,有时像

var a = xxxxxxxxhelloxxxxxxxx;

有时候喜欢

var a = xxxxhelloxxxx;

我无法使用substr()因为位置不相同。

如何在字符串中找到字符串“hello”并在“hello”之后插入字符串“world”? (欢迎使用JavaScript或jQuery中的方法)

由于

6 个答案:

答案 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'; });