Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 911321 of String.prototype.search()

  • Revision slug: Web/JavaScript/Reference/Global_Objects/String/search
  • Revision title: String.prototype.search()
  • Revision id: 911321
  • Created:
  • Creator: miam
  • Is current revision? No
  • Comment The "return value" has its specific section. It's not a part of a description as a standard paragraph

Revision Content

{{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 using new 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')}}  

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()")}}

Revision Source

<div>{{JSRef}}</div>

<p>The <strong><code>search()</code></strong> method executes a search for a match between a regular expression and this {{jsxref("String")}} object.</p>

<h2 id="Syntax">Syntax</h2>

<pre class="syntaxbox">
<var>str</var>.search(<var>regexp</var>)</pre>

<h3 id="Parameters">Parameters</h3>

<dl>
 <dt><code>regexp</code></dt>
 <dd>A regular expression object. If a non-RegExp object <code>obj</code> is passed, it is implicitly converted to a {{jsxref("RegExp")}} by using <code>new RegExp(obj)</code>.</dd>
 <dt>
 <h3>Return value</h3>
 </dt>
 <dt>integer</dt>
 <dd>If successful, <code>search()</code> returns the index of the first match of the regular expression inside the string. Otherwise, it returns -1.</dd>
</dl>

<h2 id="Description">Description</h2>

<p>When you want to know whether a pattern is found in a string use <code>search()</code> (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).</p>

<h2 id="Examples">Examples</h2>

<h3 id="Using_search()">Using <code>search()</code></h3>

<p>The following example logs a message which depends on the success of the test.</p>

<pre class="brush: js">
function testinput(re, str) {
  var midstring;
  if (str.search(re) != -1) {
    midstring = ' contains ';
  } else {
    midstring = ' does not contain ';
  }
  console.log(str + midstring + re);
}
</pre>

<h2 id="Specifications">Specifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('ES3')}}</td>
   <td>{{Spec2('ES3')}}</td>
   <td>Initial definition. Implemented in JavaScript 1.2.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td>&nbsp;</td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>&nbsp;</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Browser compatibility</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Chrome for Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="Gecko-specific_notes">Gecko-specific notes</h2>

<ul>
 <li>Prior to {{Gecko("8.0")}}, <code>search()</code> 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 <code>'a'.search()</code> and <code>'a'.search(undefined)</code> correctly return 0.</li>
 <li>Starting with Gecko 39 {{geckoRelease(39)}}, the non-standard <code>flags</code> argument is deprecated and throws a console warning ({{bug(1142351)}}). This property is Gecko-only and will be removed in the future.</li>
</ul>

<h2 id="See_also">See also</h2>

<ul>
 <li>{{jsxref("String.prototype.match()")}}</li>
 <li>{{jsxref("RegExp.prototype.exec()")}}</li>
</ul>
Revert to this revision