Нахождение подстроки и вставка другой строки - PullRequest
5 голосов
/ 03 мая 2011

Предположим, у меня есть переменная, длина строки которой не фиксирована, иногда, например,

var a = xxxxxxxxhelloxxxxxxxx;

, иногда, например,

var a = xxxxhelloxxxx;

. Я не могу использовать substr(), потому чтопозиция не идентична.

Как найти строку "привет" в строке и вставить строку "мир" после слова "привет"?(метод в JavaScript или jQuery приветствуется)

Спасибо

Ответы [ 5 ]

18 голосов
/ 03 мая 2011

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>
4 голосов
/ 03 мая 2011

Это заменит первое вхождение

a = a.replace("hello", "helloworld");

Если вам нужно заменить все вхождения, вам понадобится регулярное выражение.(Флаг g в конце означает «глобальный», поэтому он найдет все случаи.)

a = a.replace(/hello/g, "helloworld");
3 голосов
/ 03 мая 2011

Это заменит первое вхождение:

a = a.replace("hello", "hello world");

Если вам нужно заменить все вхождения, вы используете регулярное выражение для совпадения и используете глобальный флаг (g):

a = a.replace(/hello/g, "hello world");
2 голосов
/ 03 мая 2011
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

Может быть.

1 голос
/ 03 мая 2011

Вы можете использовать заменить, было бы намного проще, чем indexOf

var newstring = a.replace("hello", "hello world");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...