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);
        }
    }
}
Share:
37,348
medk
Author by

medk

Updated on November 04, 2020

Comments

  • medk
    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
    medk over 12 years
    sorry but does this return true/false or the rest of the string after the pattern (as in the comment in the script)
  • Andrew Lee
    Andrew Lee over 12 years
    It 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 is true.
  • 19h
    19h over 11 years
    function strstr(a,c,d){var b=0,a=a+"",b=a.indexOf(c);return-1==b?!1:d?a.substr(0,b):a.s‌​lice(b)}; if you want a short version.
  • peeol
    peeol almost 9 years
    Summary: if (someString.search(/someRegularExpression/) != -1){ // Match }