# JS常用正则表达式函数

### RegExp方法

* **test**

| 名称   | 描述                                                                                                       |
| ---- | -------------------------------------------------------------------------------------------------------- |
| 函数名  | [**test**](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test) |
| 作用   | 执行一个检索，用来查看正则表达式与指定的字符串是否匹配                                                                              |
| 语法   | `regExpObject.test(str)`                                                                                 |
| 参数   | 用来与正则表达式匹配的字符串                                                                                           |
| 返回值  | <p>匹配成功：返回<code>true</code></p><p>匹配失败：返回<code>false</code></p>                                          |
| `示列` | `/^[\d]+$/.test(123); // true`                                                                           |

* **exec**

| 名称  | 描述                                                                                                                                                                                              |
| --- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 函数名 | [**exec**](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec)                                                                                        |
| 作用  | <p>在一个指定字符串中执行一个搜索匹配</p><p>当指定正则标志g时，会在 RegExpObject 的 lastIndex 属性</p><p>指定的字符处开始检索字符串，每次匹配结束，重置lastIndex的位置</p>                                                                               |
| 语法  | `regExpObject.exec(str)`                                                                                                                                                                        |
| 参数  | 待匹配正则表达式的字符串                                                                                                                                                                                    |
| 返回值 | <p>匹配成功：返回一个数组</p><ul><li>数组[0]：<strong>匹配的全部字符串</strong></li><li>数组[1],...[n]：<strong>正则括号中的分组捕获</strong></li><li>index：匹配到的字符位于原始字符串的基于0的索引值</li><li>input：原始字符串</li></ul><p>匹配失败：返回null</p>  |
| 示列  | <p><code>/(?:\?|&#x26;)name=(*)/.exec('</code><a href="http://www.qq.com/?name=qq"><code>http://www.qq.com?name=qq</code></a><code>');</code></p><p><code>// ['?name=qq', 'qq', ...]</code></p> |

### String方法

* **match**

| 名称  | 描述                                                                                                                                                                                                                                                   |
| --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 函数名 | [match](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match)                                                                                                                                               |
| 作用  | 检索返回一个字符串匹配正则表达式的的结果                                                                                                                                                                                                                                 |
| 语法  | `str.match(regexp)`                                                                                                                                                                                                                                  |
| 参数  | 一个正则表达式                                                                                                                                                                                                                                              |
| 返回值 | <p>使用g标志：</p><ul><li>返回与完整正则表达式匹配的所有结果（<code>Array</code>）</li><li>不会返回捕获组</li><li>未匹配 返回<code>null</code></li></ul><p>不使用g标志：</p><ul><li>仅返回第一个完整匹配及其相关的捕获组（<code>Array</code>）</li><li>未匹配返回<code>null</code></li></ul>                            |
| 示列  | <p><code>'</code><a href="http://www.qq.com/?name=qq%27.match(/(?:\?|&#x26;)name=([^&#x26;]*)/"><code>http://www.qq.com?name=qq'.match(/(?:\?|&#x26;)name=([^&#x26;]*)/</code></a><code>);</code> </p><p><code>// ['?name=qq', 'qq', ...]</code></p> |

* **replace**

| 名称  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 函数名 | [**replace**](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 作用  | <p>返回一个</p><p>由替换值（<code>replacement</code>）替换一些<br>或所有匹配的模式（<code>pattern</code>）后的新字符串</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 语法  | `str.replace(regexp\|substr, newSubStr\|function)`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 参数  | <p><strong>regexp</strong></p><ul><li>一个<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/RegExp"><code>RegExp</code></a> 对象或者其字面量</li></ul><p><strong>substr</strong></p><ul><li>一个将被 <code>newSubStr</code> 替换的 <a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/String"><code>字符串</code></a></li></ul><p><strong>newSubStr</strong></p><ul><li>用于替换掉第一个参数在原字符串中的匹配部分的<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/String"><code>字符串</code></a></li></ul><p><strong>function</strong></p><ul><li>一个用来创建新子字符串的函数</li></ul> |
| 返回值 | 一个部分或全部匹配由替代模式所取代的新的字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 示列  | `'一 起 学 RegExp'.replace(/\s/g, ''); // "一起学RegExp"`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |

* **search**

| 名称  | 描述                                                                                                          |
| --- | ----------------------------------------------------------------------------------------------------------- |
| 函数名 | [`search`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/search)  |
| 作用  | 执行正则表达式和 [`String`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/String) 对象之间的一个搜索匹配   |
| 语法  | `str.search(regexp)`                                                                                        |
| 参数  | 一个[`正则表达式（regular expression）`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/RegExp)对象 |
| 返回值 | <p>匹配成功</p><ul><li>返回正则表达式在字符串中首次匹配项的索引;</li></ul><p>匹配失败</p><ul><li>返回 <strong>-1</strong></li></ul>       |
| 示列  | `'一 起 学 RegExp'.search(/[\a-zA-Z]+/);  // 6`                                                                |

* **split**

| 名称  | 描述                                                                                                                                                                      |
| --- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 名称  | [split](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/split)                                                                  |
| 作用  | 使用指定的分隔符字符串将一个[`String`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/String)对象分割成字符串数组                                                            |
| 语法  | `str.split([separator[, limit]])`                                                                                                                                       |
| 参数  | <p><strong><code>separator</code></strong></p><ul><li>指定表示每个拆分应发生的点的字符串，字符串或正则表达式</li></ul><p><strong><code>limit</code></strong></p><ul><li>一个整数，限定返回的分割片段数量</li></ul> |
| 返回值 | 返回源字符串以分隔符出现位置分隔而成的一个 [`Array`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Array)                                                                |
| 示列  | <p><code>'一 起 学 RegExp'.split(/[\s]+/);</code><br><code>// ["一", "起", "学", "RegExp"]</code></p>                                                                         |



