元字符 | 说明 |
---|---|
\d | 匹配 数字 |
\D | 匹配 非数字 |
\w | 匹配 数字,字母,下划线 |
\W | 匹配 任意不是字母,数字,下划线 |
\s | 匹配 空白符 |
\S | 匹配 任意不是空白符的字符 |
. | 匹配除换行符以外的任意字符 |
^ | 匹配 以谁开头 |
$ | 匹配 以谁结尾 |
/r/n 换行符
var reg = /\d/ // 表示只要字符串中有数字,就符合要求
var reg = /\D/ // 表示只要字符串中有非数字,就符合要求
var reg = /\w/ // 表示只要字符串中有 数字/字母/下划线 就符合要求
var reg = /\W/ // 表示只要字符串中有 非数字/非字母/非下划线 就符合要求
var reg = /^a/ //表示 只要字符串以a开头就符合条件
var reg = /a$/ //表示 只要字符串以a结尾就符合条件
var reg = /^abc$/ // 要求字符串中只能有 abc
var reg = /^\d$/ //表示 只能有一个数字
var reg = /^a|b$/ //表示 以a开头或者以b结尾
var reg = /^gr[ae]y$/ 或者 var reg = var reg = /^gr(a|e)y$/ //表示 匹配 gray或者grey
创建正则的方法
限定符 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 代表前面的字符可以出现n次 |
{n,} | 出现n次或更多次 |
{n,m} | 出现n到m次 |
- [] 字符串用中括号括起来,表示匹配其中的任意一个字符,相当于或的意思([]占一个字符的位置)
- [^] 匹配除中括号以内的内容(占一个位置,不能出现[]中的任意一个字符)
- \ 转义符 (把特殊字符转义为普通字符 如 \.)
- | 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱(会把正则分为两部分)
- () 从两个直接量中选择一个,分组
- eg:gr(a|e)y匹配gray和grey
- [\u4e00-\u9fa5] 匹配汉字
<script> // 验证手机号: /^\d{11}$/ // 验证邮编: /^\d{6}$/ // 匹配 138 139 186 189 170 152 135 188开头的手机号 var reg = /^1[3578][896025]\d{8}$/ // 邮箱 [email protected]/cn var reg = /^\[email protected]\w+\.(com|cn)$/ </script>
标志 | 说明 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
gi | 全局匹配+忽略大小写 |
//01匹配:正则对象.test(字符串) 输出true和false //02提取:字符串.match(正则对象); // 提取字符串中的数字部分 var str = "张三:1000,李四:5000,王五:8000。"; var reg = /\d+/g //g console.log(str.match(reg)) // ["1000","5000","8000"] //03替换:字符串.replace(正则/被替换的字符,替换的字符) // 把字符中的,,替换为| var str = ‘abc,efg,123,abc,123,a‘ var reg = /,|,/g console.log( str.replace(reg,‘|‘) ) </script>
// 2. 分组 // 数字3位.数字3位.数字3位.数字3位.数字3位 var reg = /^\d{3}\.\d{3}\.\d{3}\.\d{3}\.\d{3}$/; var reg = /^\d{3}(\.\d{3}){4}$/ console.log(reg.test(‘123.123.123.123.123‘)); var dateStr = ‘2016-1-5‘; // 正则表达式中的()作为分组来使用,获取分组匹配到的结果用RegExp.$1 $2 $3....来获取 var reg = /(\d{4})-(\d{1,2})-(\d{1,2})/; if (reg.test(dateStr)) { console.log(RegExp.$1); // 2016 console.log(RegExp.$2); // 1 console.log(RegExp.$3); // 5 }