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

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

Исходная строка - 'original READ ONLY'

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

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

Я не уверен, что вы очень честны. Вопрос может быть простым, но при реализации некоторых функций важны мелочи. Esp вещи, связанные с манипуляциями со строками. Я считаю, что Stackoverflow лучше всего подходит для этого. Поэтому, пожалуйста, не предвзято относитесь.

Julius A 31.10.2008 19:08

Вы спрашивали, как заменить определенное слово на определенная строка. Я не вижу в этом никаких тонкостей, зависящих от реализации, это просто и очень просто. Без обид, в спрашивая такого рода вопросы нет ничего плохого. Что-то не так с голосование у них.

Tomalak 31.10.2008 22:15

Ваша жалоба безосновательна. Текст alt на изображении стрелки вверх говорит: «Этот вопрос полезен и ясен ...», что является субъективным вопросом. Теперь, если бы там было сказано: «Этот вопрос полезен и ясен для посла Томалака ...», у вас могли бы быть основания для вашей жалобы.

Jesse Dhillon 23.07.2010 12:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
13
3
30 262
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

<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>

str2 = str2.replace (/ ^ Посетить /, 'Не посещать');

Gareth 31.10.2008 12:19

Ответ bobince более правильный; этот ответ подразумевает, что передача строки - это не то же самое, что и регулярное выражение, но, как указывает bobince, в любом случае она используется как регулярное выражение.

Jason Bunting 02.11.2008 08:05
stringObject.replace(findstring,newstring)

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

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

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

Например:

<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>
Ответ принят как подходящий

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

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

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

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

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

Другие вопросы по теме