unwrap - La cadena JavaScript o jQuery finaliza con la función de utilidad
wrap jquery (8)
¿Cuál es la forma más fácil de averiguar si una cadena termina con un cierto valor?
ES6 lo admite directamente:
''this is dog''.endsWith(''dog'') //true
Expresiones regulares
"Hello world".match(/world$/)
No tuve suerte con el enfoque de partido, pero esto funcionó:
Si tiene la cadena, "Esta es mi cadena". y quería ver si termina con un período, haz esto:
var myString = "This is my string.";
var stringCheck = ".";
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
alert(foundIt);
Puede cambiar la variable stringCheck para que sea cualquier cadena para verificar. Mejor aún sería lanzar esto en su propia función de esta manera:
function DoesStringEndWith(myString, stringCheck)
{
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
return foundIt;
}
Puedes hacer ''hello world''.slice(-5)===''world''
. Funciona en todos los navegadores. Mucho más rápido que regex.
Robado de prototypejs:
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
''slaughter''.endsWith(''laughter'');
// -> true
Siempre puedes prototipar la clase String, esto funcionará:
String.prototype.endsWith = function (str) {return (this.match (str + "$") == str)}
Puede encontrar otras extensiones relacionadas para la clase String en http://www.tek-tips.com/faqs.cfm?fid=6620
Solo estoy expandiendo lo que @ luca-matteis ha publicado, pero para resolver los problemas señalados en los comentarios, el código debe ser incluido para asegurarse de que no está sobrescribiendo una implementación nativa.
if ( !String.prototype.endsWith ) {
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
}
Este es el método sugerido para el método Array.prototype.forEach señalado en la red de desarrolladores de mozilla
podrías usar Regexps, así:
str.match(/value$/)
que devolvería verdadero si la cadena tiene ''valor'' al final de ella ($).