{{JSRef}}
The search()
method executes a search for a match between a regular expression and this {{jsxref("String")}} object.
Syntax
str.search(regexp)
Parameters
regexp
- A regular expression object. If a non-RegExp object
obj
is passed, it is implicitly converted to a {{jsxref("RegExp")}} by usingnew RegExp(obj)
. -
Return value
- integer
- If successful,
search()
returns the index of the first match of the regular expression inside the string. Otherwise, it returns -1.
Description
When you want to know whether a pattern is found in a string use search()
(similar to the regular expression {{jsxref("RegExp.prototype.test()", "test()")}} method); for more information (but slower execution) use {{jsxref("String.prototype.match()", "match()")}} (similar to the regular expression {{jsxref("RegExp.prototype.exec()", "exec()")}} method).
Examples
Using search()
The following example logs a message which depends on the success of the test.
function testinput(re, str) { var midstring; if (str.search(re) != -1) { midstring = ' contains '; } else { midstring = ' does not contain '; } console.log(str + midstring + re); }
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Initial definition. Implemented in JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ESDraft')}} |
Browser compatibility
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Gecko-specific notes
- Prior to {{Gecko("8.0")}},
search()
was implemented incorrectly; when it was called with no parameters or with {{jsxref("undefined")}}, it would match against the string 'undefined', instead of matching against the empty string. This is fixed; now'a'.search()
and'a'.search(undefined)
correctly return 0. - Starting with Gecko 39 {{geckoRelease(39)}}, the non-standard
flags
argument is deprecated and throws a console warning ({{bug(1142351)}}). This property is Gecko-only and will be removed in the future.
See also
- {{jsxref("String.prototype.match()")}}
- {{jsxref("RegExp.prototype.exec()")}}