JavaScript or jQuery equivalent of PHP's strstr() function
37,348
Solution 1
Ok I just found something that works!
http://my-sliit.blogspot.com/2008/06/search-string-javascript-like-strstr-in.html
Thanks for your contributions :)
Solution 2
Try using this:
function strstr(haystack, needle, bool) {
// Finds first occurrence of a string within another
//
// version: 1103.1210
// discuss at: http://phpjs.org/functions/strstr // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: strstr(‘Kevin van Zonneveld’, ‘van’);
// * returns 1: ‘van Zonneveld’ // * example 2: strstr(‘Kevin van Zonneveld’, ‘van’, true);
// * returns 2: ‘Kevin ‘
// * example 3: strstr(‘[email protected]’, ‘@’);
// * returns 3: ‘@example.com’
// * example 4: strstr(‘[email protected]’, ‘@’, true); // * returns 4: ‘name’
var pos = 0;
haystack += "";
pos = haystack.indexOf(needle); if (pos == -1) {
return false;
} else {
if (bool) {
return haystack.substr(0, pos);
} else {
return haystack.slice(pos);
}
}
}
(From http://phpjs.org/functions/strstr:551)
Overall phpjs is pretty phenomenal.
Solution 3
Read about these javascript functions - indexOF() and lastIndexOf().
Solution 4
Well, not built in. String.indexOf( String str )
returns the integer index of the substring
but then, you can easily build one: http://aimtb.wordpress.com/2011/03/16/strstr-in-javascript/
function strstr(haystack, needle, bool) {
// Finds first occurrence of a string within another
//
// version: 1103.1210
// discuss at: http://phpjs.org/functions/strstr // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: strstr(‘Kevin van Zonneveld’, ‘van’);
// * returns 1: ‘van Zonneveld’ // * example 2: strstr(‘Kevin van Zonneveld’, ‘van’, true);
// * returns 2: ‘Kevin ‘
// * example 3: strstr(‘[email protected]’, ‘@’);
// * returns 3: ‘@example.com’
// * example 4: strstr(‘[email protected]’, ‘@’, true); // * returns 4: ‘name’
var pos = 0;
haystack += "";
pos = haystack.indexOf(needle); if (pos == -1) {
return false;
} else {
if (bool) {
return haystack.substr(0, pos);
} else {
return haystack.slice(pos);
}
}
}
Author by
medk
Updated on November 04, 2020Comments
-
medk over 3 years
Is there a function in jQuery or JavaScript that does the same as
strstr()
in PHP?I have an AJAX response that should be 1,2,3,12,13,23 or 123. I want to check if 1 exists, then if 2 exists then if 3 exists.
-
medk over 12 yearssorry but does this return true/false or the rest of the string after the pattern (as in the comment in the script)
-
Andrew Lee over 12 yearsIt behaves exactly like the PHP strstr; i.e. returns false is substring not found, the rest of the string after the pattern if it is found, or the part of the string before if the optional parameter
bool
istrue
. -
19h over 11 yearsfunction strstr(a,c,d){var b=0,a=a+"",b=a.indexOf(c);return-1==b?!1:d?a.substr(0,b):a.slice(b)}; if you want a short version.
-
peeol almost 9 yearsSummary:
if (someString.search(/someRegularExpression/) != -1){ // Match }