Quiero saber si una cadena comienza con el carácter / cadena especificada o termina con ella en jQuery.
Por ejemplo:
var str = 'Hello World';
if( str starts with 'Hello' ) {
alert('true');
} else {
alert('false');
}
if( str ends with 'World' ) {
alert('true');
} else {
alert('false');
}
Si no hay ninguna función, ¿hay alguna alternativa?
javascript
jquery
string
Naveed
fuente
fuente
Respuestas:
Una opción es usar expresiones regulares:
fuente
str.match(/^Hello/)
Pero la forma/regex/.test(str)
es aún mejor para este caso particular, por stackoverflow.com/questions/10940137/…var isUnavailable = $("#StatusId option:selected").text().match("^Unavailable - ");
- ¿Por qué esto devuelve nulo cuando la opción seleccionada es "No disponible - Otro"?Para empezar, puedes usar indexOf:
...
árbitro
y puede hacer los cálculos en función de la longitud de la cadena para determinar 'endswith'.
fuente
lastIndexOf()
para el finalwith;)("1234".lastIndexOf('Hello') == "1234".length - 'Hello'.length)
resultados en verdad.No hay necesidad de jQuery para hacer eso. Puede codificar un contenedor jQuery pero sería inútil, por lo que debería usarlo mejor
ya que el método match () está en desuso.
PD: el indicador "i" en RegExp es opcional y no distingue entre mayúsculas y minúsculas (por lo que también será verdadero para "hola", "hola", etc.).
fuente
Realmente no necesita jQuery para tales tareas. En la especificación ES6, ya tienen métodos listos para usar arranca con y termina con .
Actualmente disponible en FF y Chrome . Para navegadores antiguos, puede usar sus polyfills o substr
fuente
Siempre puedes extender un
String
prototipo como este:Y úsalo así:
fuente
ES6 ahora admite el método
startsWith()
yendsWith()
para verificar el comienzo y el final destring
s. Si desea admitir motores pre-es6, puede considerar agregar uno de los métodos sugeridos alString
prototipo.fuente
()[].
) romperá sus métodos de polyfill. Necesita preparar las cadenas con una función regex-escape. O incluso mejor: usa un polyfill probado en batalla decore-js