Подтвердить что ты не робот

Javascript - как заменить подстроку?

Это простой. Я хочу заменить подстроку другой подстрокой на стороне клиента, используя Javascript.

Оригинальная строка 'original READ ONLY'

Я хочу заменить 'READ ONLY' на 'READ WRITE'

Какой-нибудь быстрый ответ, пожалуйста? Возможно, с фрагментом кода javascript...

4b9b3361

Ответ 1

String.replace() основан на регулярном выражении; если вы передадите строку в качестве первого аргумента, регулярное выражение, сделанное из него, не будет содержать флаг 'g (global). Этот параметр необходим, если вы хотите заменить все строки строки поиска (обычно это то, что вы хотите).

Альтернативный не-regexp-идиом для простой замены глобальной строки:

function string_replace(haystack, find, sub) {
    return haystack.split(find).join(sub);
}

Это предпочтительнее, если строка поиска может содержать символы, которые имеют нежелательное значение в регулярных выражениях.

Во всяком случае, любой метод подходит для примера в вопросе.

Ответ 2

Хорошо summary. Он основан на регулярном выражении, если вы используете нотацию regexp, вы можете указать модификаторы я и g (без учета регистра (i), которые будут соответствовать независимо от case и global (g), которые заменят все вхождения), если вы используете строковое обозначение it 'будет преобразован в регулярное выражение, и вы не сможете указать какой-либо модификатор.

<script type="text/javascript">

var str1="Visit Microsoft!";
var str2 = str1.replace(/microsoft/i, "W3Schools"); //Will work, per the i modifier 

var str3 = "original READ ONLY";
var str4 = str3.replace("ONLY", "WRITE"); //Will also work

</script>

Ответ 3

stringObject.replace(findstring,newstring)

Ответ 4

Я предпочитаю подход с регулярным выражением,

newstring = oldstring.replace(/regexforstringtoreplace/, 'новая строка');

его также стоит рассматривать модификаторы g и я regex, они выполняют глобальную замену (т.е. заменяют все вхождения) и делают регистр нечувствительным.

например:

<script type="text/javascript">

var str = "this is a String";

document.write(str.replace(/\s/g, "_"));

would print: this_is_a_string

document.write(str.replace(/s/gi, "f"));

would print "thif if a ftring"

</script>