¿Cuál es el equivalente de JavaScript a este C#
método?
var x = "|f|oo||";
var y = x.Trim('|'); // "f|oo"
¡C # recorta el carácter seleccionado solo al principio y al final de la cadena!
javascript
string
trim
fubo
fuente
fuente
Puede utilizar una expresión regular como:
ACTUALIZAR:
Si desea generalizar esto en una función, puede hacer lo siguiente:
fuente
para mantener esta pregunta actualizada:
aquí hay un enfoque que elegiría sobre la función regex usando el operador de propagación ES6.
Versión mejorada después del comentario de @fabian (puede manejar cadenas que contienen solo el mismo carácter)
fuente
[].concat(string)
que no es el resultado deseado. El usoArray.from(string)
funcionará.Una versión sin expresiones regulares que es agradable a la vista:
Para casos de uso en los que estamos seguros de que no hay repetición de los caracteres en los bordes.
fuente
const trim = (str, chars) => str.split(chars).filter(x => { Boolean(x); console.log(typeof(x), x, Boolean(x)); }).join(chars); const str = "#//#//abc#//test#//end#//"; console.log(trim(str, '#//'));
Si está tratando con cadenas más largas, creo que esto debería superar a la mayoría de las otras opciones al reducir el número de cadenas asignadas a cero o uno:
O si desea recortar de un conjunto de varios caracteres:
EDITAR: para divertirse, recorta palabras (en lugar de caracteres individuales)
fuente
Esto puede recortar varios caracteres a la vez:
fuente
Si define estas funciones en su programa, sus cadenas tendrán una versión mejorada
trim
que puede recortar todos los caracteres dados:Fuente
https://www.sitepoint.com/trimming-strings-in-javascript/
fuente
Que yo sepa, jQuery no tiene una función incorporada en el método por el que está preguntando. Sin embargo, con javascript, puede usar reemplazar para cambiar el contenido de su cadena:
Esto reemplazará todas las apariciones de | sin nada.
fuente
$
así solo al final:"||spam|||".replace(/\|+$/g, "")
o uno^
así solo al comienzo:"||spam|||".replace(/^\|+/g, "")
Éste recorta todos los delímetros iniciales y finales
fuente
Sugeriría mirar lodash y cómo implementaron el
trim
función.Consulte Lodash Trim para obtener la documentación y la fuente. para ver el código exacto que realiza el recorte.
Sé que esto no proporciona una respuesta exacta a su pregunta, pero creo que es bueno establecer una referencia a una biblioteca en una pregunta de este tipo, ya que otros pueden encontrarla útil.
fuente
La mejor manera de resolver esta tarea es (similar a la
trim
función PHP ):PD: ¿Por qué publiqué mi respuesta, cuando la mayoría de la gente ya lo hizo antes? Porque encontré "el mejor" error en todas las respuestas: todos usaron el meta '+' en lugar de '*', porque
trim
deben eliminar los caracteres SI ESTÁN EN INICIO Y / O FIN, pero devuelve la cadena original en el otro caso .fuente
expandiendo la respuesta de @leaf, aquí hay uno que puede tomar varios caracteres:
fuente
Me gusta la solución de @ Pho3niX83 ...
Extendamos con "palabra" en lugar de "char" ...
fuente
fuente
(tenga en cuenta el doble escape.
\\
necesario, para tener una barra diagonal única en la cadena , que luego conduce al escape|
en el regExp ).Solo unos pocos caracteres necesitan regExp-Escaping. , entre ellos el operador de tuberías.
fuente
tratar:
fuente
fuente
Prueba este método:
fuente