RegExp对象
2018-08-22 本文已影响0人
HelloAndyZhang
描述字符模式的对象。正则表达式直接量定义为包含在一对斜杠(/)之间的字符。例:/s$/ –匹配所有以s结尾的字符串
方法
- search()方法:搜索符合正则的第一次出现的位置,若搜索到返回第一次出现的位置,否则返回-1
- match()方法:获取正则匹配的结果,以数组的形式返回。
- exec()方法:捕获符合正则的字符串,若捕获到符合正则的字符串返回一个Array的实例,但它包含了两个额外的属性index和input。index表示符合正则字符串出现的位置;input表示字符串表达式的字符串。
- replace(正则|字符串,字符串|回调函数)方法:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
5.test()方法 :检索字符串中指定的值。返回 true 或 false。
匹配规则
- 方括号[]:表示匹配括号中的所有字符
var re=/[a-z]/ //表示满足小写a-z的字符串 如:a34vas3
var re1=/[abc][def0-9]/ //表示两个满足条件并且要相邻的字符串 如:5a8zcf
- 花括号{}:表示匹配多少个字符,通常与方括号[]一起使用
var re =/[a-z]{3}/ //表示要有连续的三个小写字母的字符串 如:t34bgp5jip8
var re1=/[a]{1-3}/ //表示满足连续三个a的字符串 如:rgb89aaacd
var re2=/[a]{1,3}/ //逗号,表示或者的意思 如:rabcaaadaa
-
小括号():表示提取字符串,匹配到的字符串可以通过$0-9可获取匹配的字符串
-
^符号
- 表示匹配一个字符串的开头 var re=/^[a-z]/ //表示以小写字母开头的字符串 如:a45jdkl
- 如果^符号出现在[]中的第一个字符位置,表示不包含此字符串 var re=/[^a] //表示字符串中不能有a 如:rgb123
-
$符号:表示匹配一个字符串的结尾
var re=/d$/ //表示以d结尾的字符串 如:abcd
规则 | 描述 |
---|---|
\w | 一个字母或数字 等价于[a-zA-Z0-9] |
. | 任意字符(包括0个)除了换行和行结束符 |
\s+ | 至少一个空格 |
\W | 查找非单词字符,等价于[^a-zA-Z0-9] |
\s | 查找空白字符 |
\S | 查找非空白字符 |
\d | 查找数字,等价于[0-9] |
\D | 查找非数字字符,等价于[^0-9] |
\b | 匹配单词边界 |
\r | 查找回车符 |
\t | 查找制表符 |
\0 | 查找 NULL 字符 |
\n | 查找换行符 |
\f | 查找换页符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八进制数 xxx 规定的字符。 |
\xdd | 查找以十六进制数 dd 规定的字符。 |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
字符串匹配
字符 | 描述 | 例子 |
---|---|---|
{n,m} | 匹配前一项至少n次,但不能超过m次 | |
{n,} | 匹配前一项n次或更多次 | |
{n} | 匹配前一项n次 | |
n$ | 匹配任何结尾为 n 的字符串 | |
^n | 匹配任何开头为 n 的字符串 | |
n+ | +号表示匹配任何包含至少一个 n 的字符串,等价于{1,} | var re=/\d+/ 如:abc1de234fg56 |
n* | 匹配任何包含零个或多个 n 的字符串等价于{0,}。 | var re=/ab*/ 如:a123abb |
n? | 匹配任何包含零个或一个 n 的字符串 | var re=/do(es)?/ 如:doAnddoes |
n{X} | 匹配包含 X 个 n 的序列的字符串。 | var re=/[0-9]{2}/ 如:a12b34c56 |
n{X,Y} | 匹配包含 X 或 Y 个 n 的序列的字符串。 | var re=/[0-9]{2,3}/ 如:a12b345 |
n{X,} | 匹配包含至少 X 个 n 的序列的字符串。 | var re=/[0-9]{2,}/ 如:a12b345c6789 |
?=n | 匹配任何其后紧接指定字符串 n 的字符串 | ‘var re=/a(?=12|34)/ 如:a12a34a67’ |
?!n | 匹配任何其后没有紧接指定字符串 n 的字符串。 | var re=/a(?!12|34)/ 如a66a77a12 |
匹配特定数字
^[1-9]\d*$ | 匹配正整数
^-[1-9]\d*$ | 匹配负整数
^-?[0-9]\d*$ | 匹配整数
^[1-9]\d*|0$ | 匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ | 匹配非正整数(负整数 + 0)
^[1-9]\d*.\d*|0.\d*[1-9]\d*$ | 匹配正浮点数
^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ | 匹配负浮点数
^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$ | 匹配浮点数
^[1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$ | 匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$ | 匹配非正浮点数(负浮点数 + 0)
```