Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
В js вы можете использовать метод str.replace() для замены строк. Метод replace() используется для замены некоторых символов другими символами в строке или замены подстроки, соответствующей регулярному выражению, а затем возвращает новую строку.
Метод replace() используется для замены некоторых символов другими символами в строке или замены подстроки, соответствующей регулярному выражению.
Формат:stringObject.replace(regexp/substr,replacement)
возвращаемое значение
Новая строка, полученная путем замены первого или всех совпадений регулярного выражения заменой.
иллюстрировать
Метод replace() строки stringObject выполняет операцию поиска и замены. Он будет искать в stringObject подстроки, соответствующие регулярному выражению, и заменять эти подстроки заменой. Если регулярное выражение имеет глобальный флаг g, то метод replace() заменяет все соответствующие подстроки. В противном случае он заменяет только первую совпадающую подстроку.
замена Это может быть строка или функция. Если это строка, каждое совпадение будет заменено строкой. Но замена имеет особое значение в символе $. Как показано в следующей таблице, она будет использоваться для замены, если мы хотим получить совпадение с шаблоном.
Пример: использовать “hello” заменить нитьв “hi”:
var str=”hi!”;
console.log(str.replace(/hi/, “hello”));
Вывод: здравствуйте!
Расширить знания об использовании replace
1. Основное использование замены
/*Требуется, чтобы все буквы a в строке были заменены на A*/
var str = “JavaScript is great script language!”;
//Только первое совпадение a будет заменено на A
console.log(str.replace(“a”,”A”));
//Только первое совпадение a будет заменено на A. Поскольку глобального поиска нет
console.log(str.replace(/a/,”A”));
//Все a заменяются на A
console.log(str.replace(/a/g,”A”));
Основное использование replace — заменить и удалить указанный класс класса.
/*Запросить удаление недопустимого класса следующего элемента*/
представлять на рассмотрение
var classname = document.getElementById(“j_confirm_btn”).className;
/*(^|\\s) означает совпадение начала строки или пробела перед строкой, (\\s|$) означает совпадение конца строки или пробела после строки*/
var newClassName = classname.replace(/(^|\\s)unabled(\\s|$)/,””);
document.getElementById(“j_confirm_btn”).className = newClassName;
2. Расширенное использование replace —- $i
2.1. Простое использование $i.
/*Требование: заменить двойные кавычки нитьв на "-"*/
var str = ‘”a”, “b”‘;
console.log(str.replace(/”[^”]*”/g,”-$1-“));
//Выходной результат: -$1-, -$1-
/*Объяснение: $1 — это каждый символ, соответствующий предыдущему регулярному выражению (/»[^»]*»/g).*/
2.2. Используйте $i в сочетании с группировкой.
/*Требование: замените следующую строку на: JavaScript — это fn.it — хороший язык сценариев*/
var str = “JavaScript is a good script language”;
console.log(str.replace(/(JavaScript)\s*(is)/g,”$1 $2 fn.it $2″));
/*Объяснение: каждая пара скобок представляет группу, слева направо представляет первую группу, вторую группу... как указано выше, «*(JavaScript)» представляет первую группу,
«(есть)» — вторая группа. $1 представляет соответствующий контент первой группы, $2 представляет соответствующий контент второй группы и так далее...*/
2.3. Используйте $i в сочетании с группировкой — выделением ключевых слов.
Выполнив поиск в Google, мы обнаружим, что искомые нами ключевые слова выделены. Можно ли отобразить этот эффект с помощью JavaScript? Ответ — да, это можно легко сделать с помощью replace().
/*Требование: отобразить следующий код Java красным шрифтом*/
var str = "Netscape первоначально назвала свой язык сценариев LiveScript, который позже был переименован в JavaScript после сотрудничества Netscape с Sun.
JavaScript изначально был вдохновлен Java и был разработан. Одна из целей — «выглядеть как Java», поэтому есть сходство в синтаксисе, а некоторые имена и соглашения об именах также заимствованы из Java.
Но основные принципы проектирования JavaScript заимствованы из Self и Scheme. ";
document.write(str.replace(/(java)/gi,’$1‘));
/*Объяснение: необходимо включить глобальный поиск и игнорировать регистр, иначе не все символы «java» будут найдены*/
2.4. Обратная группировка – обратная ссылка на группировку.
В регулярных выражениях, когда нам нужно сопоставить два или более последовательных одинаковых символа, нам необходимо использовать обратные ссылки. Поиск последовательных повторяющихся символов — одно из самых простых, но наиболее полезных применений обратных ссылок. Вышеуказанный «$i» также является формой обратной группировки. Здесь мы представляем другой тип обратной группировки.
/* /ab(cd)\1e/ Здесь \1 означает повтор содержимого первой группы*/
console.log(/ab(cd)\1e/.test(“abcde”));//false
console.log(/ab(cd)\1e/.test(“abcdcde”));//true
/*Требование: удалить повторяющиеся части в следующих строках"*/
var str = “abbcccdeee”;
var newStr = str.replace(/(\w)\1+/g,”$1″);
console.log(newStr); // abcde
3. Второй параметр расширенного использования замены — это функция
Вторым параметром функции replace может быть не только символ, но и функция!
3.1. Параметр 2 представляет собой подробное пояснение параметров функции.
var str = “bbabc”;
var newStr = str.replace(/(a)(b)/g,function (){
console.log(arguments);//[“ab”, “a”, “b”, 2, “bbabc”]
/*Параметры следующие:
1. Строка, совпадающая по всему регулярному выражению — «ab»
2. Строка, совпадающая с первой группой, строка, совпадающая со второй группой... и так далее до последней группы - "a, b"
3. Это совпадение находится в исходном нижнем индексе, а возвращаемый из является первым совпадающим символом из нижнего индекса --2.
4. Исходная строка — «bbabc».
*/
})
3.2. Случай, когда вторым параметром является первая буква функции заглавными буквами.
/*Требование: писать все первые буквы слова «нитв» с заглавной буквы*/
var str = “Tomorrow may not be better, but better tomorrow will surely come!”;
var newStr = str.replace(/\b\w+\b/gi,function (matchStr){
console.log(matchStr);//совпавшие символы
return matchStr.substr(0,1).toUpperCase() + matchStr.substr(1);
});
console.log(newStr);
3.3 Второй параметр — данные привязки функции — ядро шаблона artTemplate.
var data = {
название: «Кунг-фу»,
главный герой: «Стивен Чоу»
},
domStr = ‘
Имя: { {имя}}
Режиссер: { {главный герой}}
‘;
document.getElementById(“content”).innerhtml = formatString(domStr,data);
/*Основой привязки данных является использование регулярного сопоставления*/
function formatString(str,data){
return str.replace(/{ {(\w+)}}/g,function (matchingStr,group1){
return data[group1];
});
}
4. Расширенное использование замены для получения текста, соответствующего регулярному выражению.
4.1 Расширенное использование замены для получения исходной строки, соответствующей регулярному выражению.
var str = “i am a good man”;
var newStr = str.replace(/good/g,”$&”);
console.log(newStr);//Результат: вывод: я хороший человек
/*объяснять:здесь”$&”Просто срегулярное выражение, соответствующее из этого источника нить*/
4.2. Расширенное использование замены для получения символов, соответствующих регулярным выражениям.
/*Требование: заменить «я хороший человек» на «я хороший человек» */
var str = “i am a good man”;
var newStr = str.replace(/good/g,”$&-$&”);
console.log(newStr);
/*объяснять:здесь”$&”Можно попасть на фронтрегулярное выражениесоответствиеизсодержания,Как указано вышеиз”$&”то естьрегулярное выражение соответствует «хорошо»*/
5. Расширенное использование замены: получите символы слева от обычного совпадения.
/*Требование: замените следующую строку на «java-java — хороший скрипт»*/
var str = “javascript is a good script”;
var newStr = str.replace(/script/,”-$`”);
console.log(newStr)
/*Объяснение: «$`» получает содержимое левой части регулярного выражения. Как показано в приведенном выше регулярном выражении, символ перед символом «script» — «java», «-$`» — «. -java", а "-$`" заменит скрипт Lose. */
6. Расширенное использование замены: поместите символы в правую сторону обычного совпадения.
/*Требование: Замените следующие символы на «Java — хороший язык! Это хороший сценарий, это хороший сценарий»*/
var str = “javascript is a good script”;
var newStr = str.replace(/script/,” is a good language!it$'”);
console.log(newStr)
/*Объяснение: «$'» получает содержимое правой части str. Как показано в приведенном выше регулярном выражении, «$'» означает «хороший скрипт».
«хороший язык! it$'» заменит «скрипт», соответствующий регулярному выражению */
Автор: Full stack программист, лидер стека,ПерепечаткаПожалуйста, укажите источник:https://javaforall.cn/144812.htmlИсходная ссылка:https://javaforall.cn