How to know that a string starts/ends with a specific string in jQuery?
Solution 1:
One option is to use regular expressions:
if (str.match("^Hello")) {
// do this if begins with Hello
}
if (str.match("World$")) {
// do this if ends in world
}
Solution 2:
For startswith, you can use indexOf:
if(str.indexOf('Hello') == 0) {
...
ref
and you can do the maths based on string length to determine 'endswith'.
if(str.lastIndexOf('Hello') == str.length - 'Hello'.length) {
Solution 3:
There is no need of jQuery to do that. You could code a jQuery wrapper but it would be useless so you should better use
var str = "Hello World";
window.alert("Starts with Hello ? " + /^Hello/i.test(str));
window.alert("Ends with Hello ? " + /Hello$/i.test(str));
as the match() method is deprecated.
PS : the "i" flag in RegExp is optional and stands for case insensitive (so it will also return true for "hello", "hEllo", etc.).
Solution 4:
You do not really need jQuery for such tasks. In the ES6 specification they already have out of the box methods startsWith and endsWith.
var str = "To be, or not to be, that is the question.";
alert(str.startsWith("To be")); // true
alert(str.startsWith("not to be")); // false
alert(str.startsWith("not to be", 10)); // true
var str = "To be, or not to be, that is the question.";
alert( str.endsWith("question.") ); // true
alert( str.endsWith("to be") ); // false
alert( str.endsWith("to be", 19) ); // true
Currently available in FF and Chrome. For old browsers you can use their polyfills or substr