- ? 通配符匹配文件名中的 0 个或 1 个字符,而 * 通配符匹配零个或多个字符
例子:/?a/ 可以匹配字符串:aa 1a a
/*a/ 可以匹配字符串: adsfa 1223a a
- + 号代表前面的字符必须至少出现一次(1次或多次)
- () 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用
- . 匹配除换行符 \n 之外的任何单字符
- /^[0-9]+abc$/
^ : 为匹配输入字符串的开始位置
[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。
abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置
例子 : 123abc 8789000abc
不能匹配:(123dsabc)
- /^[a-z0-9_-]{6,18}$/
匹配a-z 字符,0-9数子,下划线_ ,连接符- ,6-18位字符串
例子:abc12_3- 090redf_99 123456 abcdefg
不能匹配:adf(不够六位) fds123$(含有不包含的特殊字符)
7.非打印字符
- \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
- \f 匹配一个换页符。等价于 \x0c 和 \cL。
- \n 匹配一个换行符。等价于 \x0a 和 \cJ。
- \r 匹配一个回车符。等价于 \x0d 和 \cM。
- \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。
- \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
- \t 匹配一个制表符。等价于 \x09 和 \cI。
- \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
8.限定符
除了 * , ? , + 之外 ,还有 {n} , {n,},{n,m}
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
*、+ 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
9.定位符
- ^ 匹配输入字符串开始的位置
- $ 匹配输入字符串结尾的位置
- \b 匹配一个单词边界,即字与空格间的位置。
- \B 非单词边界匹配,(边界的匹配不了)
10.选择
圆括号将选择项括起来,各选项用 | 分隔。但是() 会使相关的匹配被缓存。可以使用?: 、 ?= 、?! (非捕获源)放在第一个选项前来使得它不被缓存。
- 反向引用
例子:
var str = "Is is the cost of of gasoline going up up";
var patt1 = /\b([a-z]+) \1\b/ig;
document.write(str.match(patt1));
匹配出的结果是: Is is,of of,up up
- \1 指定第一个子匹配项
- g 正则表达式后面的全局标记 g 指定将该表达式应用到输入字符串中能够查找到的尽可能多的匹配
- i 不区分大小写
例子:
var str = "http://www.runoob.com:80/html/html-tutorial.html";
var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
arr = str.match(patt1);
for (var i = 0; i < arr.length ; i++) {
document.write(arr[i]);
document.write("<br>");
}
//第一个括号子表达式包含 http
//第二个括号子表达式包含 www.runoob.com
//第三个括号子表达式包含 :80
//第四个括号子表达式包含 /html/html-tutorial.html
- [] 里匹配的元素前面带上 ^ 表示匹配除了[]中的元素之外的元素
- \w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
- \W 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。
- \d 匹配一个数字字符。等价于 [0-9]。
- \D 匹配一个非数字字符。等价于 [^0-9]。
汉字:^[\u4e00-\u9fa5]{0,}$