js reemplaza el método analiza registros

1. Definición del método:

Consulte la definición del método de reemplazo de W3school JS

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
语法:stringObject.replace(regexp/substr,replacement)
说明:regexp/substr(必须),规定子字符串或要替换的模式的RegExp对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为RegExp对象。
replacement(必须): 替换文本或生成替换文本的函数
返回值:一个用replacement替换了regexp的第一次匹配或所有匹配之后得到的新字符串。

2. Uso básico

Esta función tiene dos parámetros. El primer parámetro se utiliza para buscar la cadena a reemplazar. El método de búsqueda se puede dividir en búsqueda precisa (coincidencia exacta) y búsqueda difusa (coincidencia regular). A continuación, daremos una descripción de este parámetro.

2.1 Descripción del parámetro regexp/substr:

2.1.1 Coincidencia exacta (substr)

La llamada coincidencia completa se basa en que el primer parámetro es substr. Si stringObject contiene substr, se reemplaza con reemplazo y se devuelve la cadena reemplazada. Por ejemplo:

var str="Visit Microsoft!";
str = str.replace("Microsoft","W3School");
console.log(str);
//输出结果为Visit W3School!

NOTA: Este reemplazo completo solo reemplazará el primero

var str="Visit Microsoft Microsoft!";
str = str.replace("Microsoft","W3School");
console.log(str);
//输出结果为Visit W3School Microsoft!

2.1.2 Coincidencia de expresiones regulares (regexp)

         La coincidencia exacta descrita en 2.1.1 es relativamente fácil de entender. Es atravesar hasta la primera cadena coincidente en orden positivo y regresar después del reemplazo. Sin embargo, esto tendrá limitaciones y no se puede reemplazar por completo. También es inflexible y no puede cumplir con los requisitos de uso diario. Debido a que necesitamos cambiar el primer parámetro a un parámetro de expresión regular, podemos realizar coincidencias y reemplazos flexibles.

Acerca de las expresiones regulares js. Puede consultar el Manual de referencia de expresiones regulares de W3cSchool.

Aquí hay una breve explicación:

1. 直接语法:
   /pattern/attributes
   pattern: 我们最常要编辑的正则表达式
   attributes: 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的 
   匹配和多行匹配。这个可以多个同时使用,例如/gi

        Coincidencia de cadenas de expresiones regulares

var str="Visit Microsoft Microsoft!";
str = str.replace(/Microsoft/,"W3School");
console.log(str);
//输出Visit W3School Microsoft!

El ejemplo anterior es una coincidencia de expresión regular estándar, pero de manera similar, solo puede coincidir una vez. Para hacer coincidir todas las cadenas, debe utilizar los atributos descritos en 2.1. Utilice /g para indicar coincidencia global. O /i coincidencia de casos

// /g参数
var str="Visit Microsoft Microsoft!";
str = str.replace(/Microsoft/g,"W3School");
console.log(str);
//输出Visit W3School W3School!

// /i参数
//未增加/i时,完全大小写匹配
var str="Visit Microsoft microsoft!";
str = str.replace(/Microsoft/g,"W3School");
console.log(str);
//输出Visit W3School microsoft!

//增加/i时,忽略大小写
var str="Visit Microsoft microsoft!";
str = str.replace(/Microsoft/gi,"W3School");
console.log(str);
//输出Visit W3School W3School!

   Las expresiones regulares se pueden componer utilizando cualquier regla. Por ejemplo, queremos reemplazar todas las palabras con una palabra unificada. Por ejemplo:

//将所有的单词替换成word
var str="Visit Microsoft Microsoft!";
str = str.replace(/\w+/gi,"word");
console.log(str);
//输出word word word!

//将所有以M开头的单词替换成word。小写的m开头不替换
var str="Visit Microsoft microsoft!";
str = str.replace(/M\w+/g,"word");
console.log(str);
//输出Visit word microsoft!

2.2 Descripción del parámetro de reemplazo:

El reemplazo se utiliza para reemplazar la cadena coincidente. Este tipo de parámetro puede ser una cadena para reemplazar el texto coincidente o una función para procesar la cadena coincidente y devolverla. Si es una cadena, hay un símbolo $, que tiene un significado especial y puede entenderse como un carácter de escape.

2.2.1 Símbolos especiales de tipo cadena

$&: este símbolo representa la cadena que coincide con la expresión regular. Podemos agregar este símbolo a la cadena del parámetro de reemplazo para construir una nueva cadena para reemplazo. Por ejemplo, en el siguiente ejemplo, podemos agregar un sufijo _myword después de todas las palabras.

var str="Visit Microsoft microsoft!"
str = str.replace(/\w+/g,'$&_myword');
console.log(str);
//输出内容为Visit_myword Microsoft_myword microsoft_myword!

$`: Esto representa el texto en el lado izquierdo de la cadena coincidente.

$': Esto representa el texto en el lado derecho de la cadena coincidente.

var str="Visit Microsoft microsoft!"
str = str.replace(/Microsoft/gi,'$`_myword');
console.log(str);
//输出内容为_myword Visit _myword Visit Microsoft _myword!



var str="Visit Microsoft microsoft!"
str = str.replace(/Microsoft/gi,"$'_myword");
console.log(str);
//输出内容为Visit microsoft!_myword !_myword!

$$: Esto significa insertar un símbolo $. Similar a \\

$1, $2...$99 representa el texto que coincide con las subexpresiones . Personalmente, creo que esto es difícil de entender y el documento de referencia no es muy claro, así que me centraré en ello aquí. Lo que hay que tener en cuenta aquí es que la llamada subexpresión en esto es una subexpresión entre paréntesis (), y solo cuando la expresión regular completa coincide se puede obtener $1, $2... Alharaca. Ir directamente al ejemplo

//例子1
var str="Visit Microsoft go microsoft!"
str = str.replace(/(M\w+)\s(go)\s(m\w+)/, "$2 $1 $3");
console.log(str);
//此处输出Visit go Microsoft microsoft!


//例子2
var str="Visit Microsoft go microsoft!"
str = str.replace(/(M\w+)(go)(m\w+)/, "$2 $1 $3");
console.log(str);
//此处输出Visit Microsoft go microsoft!


//例子3
var str="Visit Microsoft go microsoft!"
str = str.replace(/M\w+\s(go)\s(m\w+)/, "$2 $1 $3");
console.log(str);
//此处输出Visit microsoft go $3!

Todos pueden verlo. El resultado de los tres ejemplos anteriores es completamente diferente, porque las reglas de coincidencia son diferentes.

Ejemplo 1: Dado que la expresión regular /(M\w+)\s(go)\s(m\w+)/ puede coincidir completamente con la cadena Microsoft go microsoft (\s representa un carácter en blanco). Entonces nuestros $1, $2 y $3 pueden ser retirados. $1=Microsoft $2=go $3=microsoft Luego, finalmente reemplace la cadena Microsoft go microsoft con go Microsoft microsoft. Obtenga el resultado anterior.

Ejemplo 2: en este ejemplo. Cada uno dentro de () puede coincidir con una cadena, pero juntos no pueden coincidir completamente. Porque faltan dos cadenas en blanco en el medio. Entonces se piensa que no se encontró ninguno y se devuelve la cadena original.

Ejemplo 3: En este ejemplo, la diferencia con el Ejemplo 1 es que () no se agrega a la expresión M\w+. Y es precisamente por esta diferencia. La primera subcadena que emparejamos se considera "go", no Microsoft, pero tenga en cuenta: aunque no hay paréntesis, en realidad coincide toda la cadena. Entonces se reemplaza todo "Microsoft go microsoft", pero no hay ninguna variable real en $3 en la cadena reemplazada, por lo que se genera directamente como $3

En resumen: cuando se usa $1, $2...$99, el contenido de la subexpresión debe coincidir completamente con la expresión regular y la subexpresión debe incluirse con ().

2.2.2: Función

Además de ser una cadena, el parámetro de reemplazo también puede ser una función. Se puede utilizar para procesar cadenas coincidentes.

var str="Visit Microsoft go microsoft!"
str = str.replace(/(M\w+)\s(go)\s(m\w+)/, function(word){
	return word.substring(0,4).toUpperCase()+word.substring(4);
});
console.log(str);
//此处输出Visit MICRosoft go microsoft!

El ejemplo anterior es más fácil de entender. Eso es cambiar los primeros 4 caracteres de la cadena coincidente a mayúsculas y luego regresar

En este punto: el registro de la función de reemplazo de js ha finalizado.

Referencias:

https://www.w3school.com.cn/jsref/jsref_replace.asp

https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp 

       

Supongo que te gusta

Origin blog.csdn.net/u014296267/article/details/127354198
Recomendado
Clasificación