Синтаксис метода replace: stringObj.replace(rgExp, replaceText), где stringObj — это строка (string), reExp может быть объектом регулярного выражения (RegExp) или строкой (string), а replaceText — заменой найденного. нить. . . Чтобы помочь всем лучше понять, давайте приведем простой пример ниже.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var stringObj="Народная Республика Чжунгу, народ Чжунгу";
//Замените опечатку «Чжунгу» на «Китай»
//И возвращаем замененный новый символ
//Значение исходной строки stringObj не изменилось
var newstr=stringObj.replace("Чжунгу","Китай");
оповещение (newstr);
</скрипт>
«Чжунгу» — это «Китай».
Стоимость
Китай");
Если вы умнее меня, то, прочитав приведенный выше пример, вы обнаружите, что вторая опечатка «Чжунгу» не заменена на «Китай». Мы можем выполнить вторичный метод замены, чтобы заменить вторую опечатку «Чжунгу». было улучшено следующим образом:
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var stringObj="Народная Республика Чжунгу, народ Чжунгу";
//Замените опечатку «Чжунгу» на «Китай»
//И возвращаем замененный новый символ
//Значение исходной строки stringObj не изменилось
var newstr=stringObj.replace("Чжунгу","Китай");
newstr=newstr.replace("Чжунгу","Китай");
оповещение (newstr);
</скрипт>
«Чжунгу» — это «Китай».
Стоимость
Китай");
Китай");
Мы можем тщательно об этом подумать. Если есть опечатки в N в N-й степени, следует ли нам также выполнить метод замены N в N-й степени для замены опечаток? ? О, не бойтесь. Благодаря регулярному выражению вам не придется один раз выполнять метод replace в случае опечатки. . Код после улучшения программы выглядит следующим образом
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var reg=new RegExp("久古","g"); //Создаем обычный объект RegExp
var stringObj="Народная Республика Чжунгу, народ Чжунгу";
var newstr=stringObj.replace(reg,"Китай");
оповещение (newstr);
</скрипт>
Создайте обычный объект RegExp
Выше приведено простейшее применение метода замены. Интересно, вы это понимаете? ? Начнем с немного более сложного приложения. .
Когда вы ищете статьи на некоторых веб-сайтах, вы обнаружите это явление, то есть ключевые слова для поиска будут выделены и изменены в цвете? ? Как это достигается? ? На самом деле, мы можем использовать регулярные выражения для этого. Как этого добиться? Пожалуйста, смотрите код ниже для простого принципа
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var str="Китайская Народная Республика, Китайская Народная Республика";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
document.write(newstr);
</скрипт>
В приведенной выше программе отсутствует интерактивность. Давайте улучшим программу, чтобы вы могли самостоятельно вводить символы, которые хотите найти.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var s=prompt("Пожалуйста, введите символы, которые вы ищете", "человек");
var reg=new RegExp("("+s+")","g");
var str="Китайская Народная Республика, Китайская Народная Республика";
var newstr=str.replace(reg,"<font color=red>$1</font>");
document.write(newstr);
</скрипт>
люди");
Возможно, все не совсем понимают, что означает специальный символ $1. На самом деле $1 представляет символы в скобках в выражении слева, то есть первое частичное совпадение. Точно так же $2 представляет второе частичное совпадение. . Что такое субматч? ? С точки зрения непрофессионала, каждая скобка слева — это первое совпадение слова, а вторая скобка — второе совпадение. .
Когда мы хотим выполнить операции над найденными символами, как это реализовать? ? Прежде чем реализовать это, давайте сначала поговорим о том, как получить параметры определенной функции. . Внутри функции есть коллекция аргументов. В этой коллекции хранятся все параметры текущей функции. Все параметры функции можно получить через аргументы. Для понимания см. следующий код.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
функциональный тест(){
alert("Количество параметров:"+arguments.length);
alert("Значение каждого параметра: "+arguments[0]);
alert("Значение второго параметра"+arguments[1]);
//Вы можете использовать цикл for для чтения всех параметров
}
тест("аа","bb","cc");
</скрипт>
тревога("
тревога("
тревога("
//Цикл для чтения всех параметров
Разобравшись с приведенной выше программой, давайте посмотрим на следующую интересную программу.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var reg=new RegExp("//d","g");
вар str="abd1afa4sdf";
str.replace(reg,function(){alert(arguments.length);});
</скрипт>
Мы были удивлены, обнаружив, что анонимная функция выполнялась дважды, а в функции было три параметра. Почему она выполнялась дважды? ? Об этом легко подумать, поскольку написанное нами регулярное выражение соответствует одному числу, а обнаруживаемая строка содержит два числа, поэтому анонимная функция выполняется дважды. . Каковы три параметра внутри анонимной функции? ? Чтобы прояснить этот вопрос, давайте посмотрим на следующий код.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
функциональный тест(){
for(var i=0;i<arguments.length;i++){
alert("Значение "+(i+1)+"-го параметра: "+arguments[i]);
}
}
var reg=new RegExp("//d","g");
вар str="abd1afa4sdf";
str.replace(рег,тест);
</скрипт>
for(var i=0;i<arguments.length;i++){
alert("Значения параметров: "+arguments[i]);
}
После наблюдения мы обнаружили, что первый параметр представляет совпавший символ, второй параметр представляет минимальную индексную позицию символа при сопоставлении (RegExp.index), а третий параметр представляет совпавшую строку (RegExp.input). Фактически, количество этих параметров будет увеличиваться по мере увеличения количества подсовпадений. После выяснения этих вопросов мы можем использовать другой способ записи.
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
функциональный тест($1){
верните "<font color='red'>"+$1+"</font>"
}
var s=prompt("Пожалуйста, введите символы, которые вы ищете", "человек");
var reg=new RegExp("("+s+")","g");
var str="Китайская Народная Республика, Китайская Народная Республика";
вар newstr=str.replace(reg,test);
document.write(newstr);
</скрипт>
верните "<font color='red'>"+$1+"</font>"
люди");
Прочитав приведенную выше программу, оказывается, что с совпавшими символами можно делать все, что угодно. Вот простой пример приложения:
JS-код
Скопируйте код кода следующим образом:
<script Language="JavaScript">
var str="Ему 22 года, ей 20 лет, его отцу 45 лет, а ее отцу 44 года, всего 4 человека"
функциональный тест($1){
var gyear=(new Date()).getYear()-parseInt($1)+1;
return $1+"("+gyear+"год рождения)";
}
var reg=new RegExp("(//d+)лет","g");
вар newstr=str.replace(reg,test);
оповещение (стр);
оповещение (newstr);
</скрипт>