La sintaxis del método de reemplazo es: stringObj.replace(rgExp, replaceText) donde stringObj es una cadena (cadena), reExp puede ser un objeto de expresión regular (RegExp) o una cadena (cadena) y replaceText es un reemplazo del encontrado. cadena. . . Para ayudar a todos a comprender mejor, demos un ejemplo simple a continuación.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var stringObj="República Popular de Zhonggu, Pueblo de Zhonggu";
//Reemplaza el error tipográfico "Zhonggu" por "China"
//Y devuelve el nuevo carácter reemplazado
//El valor de la cadena original stringObj no ha cambiado
var newstr=stringObj.replace("Zhonggu","China");
alerta(noticias);
</script>
"Zhonggu" es "China"
el valor de
Porcelana");
Si es más inteligente que yo, después de leer el ejemplo anterior, encontrará que el segundo error tipográfico "Zhonggu" no se ha reemplazado con "China". Podemos ejecutar el método de reemplazo secundario para reemplazar el segundo error tipográfico "Zhonggu". se ha mejorado de la siguiente manera:
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var stringObj="República Popular de Zhonggu, Pueblo de Zhonggu";
//Reemplaza el error tipográfico "Zhonggu" por "China"
//Y devuelve el nuevo carácter reemplazado
//El valor de la cadena original stringObj no ha cambiado
var newstr=stringObj.replace("Zhonggu","China");
newstr=newstr.replace("Zhonggu","China");
alerta(noticias);
</script>
"Zhonggu" es "China"
el valor de
Porcelana");
Porcelana");
Podemos pensarlo detenidamente. Si hay N a la enésima potencia de errores tipográficos, ¿deberíamos también ejecutar el método de reemplazo de N a la enésima potencia para reemplazar los errores tipográficos? ? Oh, no tengas miedo. Con la expresión regular, no es necesario ejecutar el método de reemplazo una vez por un error tipográfico. . El código después de que el programa haya sido mejorado es el siguiente
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var reg=new RegExp("久古","g"); //Crea un objeto RegExp normal.
var stringObj="República Popular de Zhonggu, Pueblo de Zhonggu";
var newstr=stringObj.replace(reg,"China");
alerta(noticias);
</script>
Crear un objeto RegExp normal
Lo anterior es la aplicación más simple del método de reemplazo. Me pregunto si lo entiende. ? Empecemos con una aplicación un poco más compleja. .
Cuando busca artículos en algunos sitios web, encontrará este fenómeno, es decir, las palabras clave de búsqueda se resaltarán y cambiarán de color. ? ¿Cómo se logra esto? ? De hecho, podemos usar expresiones regulares para lograrlo. Consulte el código a continuación para conocer el principio simple.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var str="República Popular China, República Popular China";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
documento.write(noticias);
</script>
El programa anterior carece de interactividad. Mejoremos el programa para que pueda ingresar de forma independiente los caracteres que desea encontrar.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var s=prompt("Ingrese los caracteres que busca", "persona");
var reg=new RegExp("("+s+")","g");
var str="República Popular China, República Popular China";
var newstr=str.replace(reg,"<font color=red>$1</font>");
documento.write(noticias);
</script>
gente");
Quizás no todos entiendan lo que significa el carácter especial $1. De hecho, $1 representa los caracteres entre corchetes en la expresión de la izquierda, es decir, la primera subcoincidencia. De la misma manera, $2 representa la segunda subcoincidencia. . ¿Qué es una subpartida? ? En términos sencillos, cada paréntesis de la izquierda es la primera coincidencia de palabras y el segundo paréntesis es la segunda subcoincidencia. .
Cuando queremos realizar operaciones con los caracteres encontrados, ¿cómo implementarlo? ? Antes de implementarlo, primero hablemos sobre cómo obtener los parámetros de una determinada función. . Dentro de la función, hay una colección de argumentos. Esta colección almacena todos los parámetros de la función actual. Todos los parámetros de la función se pueden obtener a través de argumentos. Para su comprensión, consulte el siguiente código.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
prueba de función(){
alert("Número de parámetros:"+argumentos.longitud);
alert("El valor de cada parámetro: "+argumentos[0]);
alert("El valor del segundo parámetro"+argumentos[1]);
//Puedes usar un bucle for para leer todos los parámetros
}
prueba("aa","bb","cc");
</script>
alerta("
alerta("
alerta("
// Bucle para leer todos los parámetros
Después de comprender el programa anterior, veamos el siguiente programa interesante.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,function(){alert(argumentos.length);});
</script>
Nos sorprendió descubrir que la función anónima se ejecutó dos veces y había tres parámetros en la función. ¿Por qué se ejecutó dos veces? ? Es fácil pensar en esto, porque la expresión regular que escribimos coincide con un solo número y la cadena que se detecta tiene dos números, por lo que la función anónima se ejecuta dos veces. . ¿Cuáles son los tres parámetros dentro de la función anónima? ? Para aclarar este problema, veamos el siguiente código.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
prueba de función(){
for(var i=0;i<argumentos.longitud;i++){
alert("El valor del parámetro "+(i+1)+"ésimo: "+argumentos[i]);
}
}
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,prueba);
</script>
for(var i=0;i<argumentos.longitud;i++){
alert("Valores de los parámetros: "+argumentos[i]);
}
Después de la observación, encontramos que el primer parámetro representa el carácter coincidente, el segundo parámetro representa la posición de índice mínima del carácter al coincidir (RegExp.index) y el tercer parámetro representa la cadena coincidente (RegExp.input). De hecho, la cantidad de estos parámetros aumentará a medida que aumente la cantidad de subcoincidencias. Después de aclarar estas cuestiones, podemos utilizar otra forma de escribir.
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
prueba de función ($ 1) {
devolver "<font color='rojo'>"+$1+"</font>"
}
var s=prompt("Ingrese los caracteres que busca", "persona");
var reg=new RegExp("("+s+")","g");
var str="República Popular China, República Popular China";
var newstr=str.replace(reg,prueba);
documento.write(noticias);
</script>
devolver "<font color='rojo'>"+$1+"</font>"
gente");
Después de leer el programa anterior, resulta que puedes hacer lo que quieras con los personajes coincidentes. Aquí hay un ejemplo de aplicación simple:
código js
Copie el código de código de la siguiente manera:
<lenguaje de escritura="javascript">
var str="Él tiene 22 años, ella 20 años, su padre tiene 45 años y su padre tiene 44 años, son 4 personas en total"
prueba de función ($ 1) {
var gyear=(nueva fecha()).getYear()-parseInt($1)+1;
return $1+"("+gaño+"año de nacimiento)";
}
var reg=new RegExp("(//d+)años", "g");
var newstr=str.replace(reg,prueba);
alerta(cadena);
alerta(noticias);
</script>