元字符详细解析
^ $
let re1 = /^d/; // 字符串必须以数字开头
console.log(re1.test(abcdefg)); // => false
console.log(re1.test(1234567)); // => true
console.log(re1.test(0abcdef)); // => true
let re1 = /d$/; // 字符串必须以数字结尾
console.log(re1.test(abcdefg)); // => false
console.log(re1.test(1234567)); // => true
console.log(re1.test(0abcdef)); // => false
let re1 = /d+/; // ^ $ 两个都不加, 那么字符串当中只要包含规则的内容即可
let re1 = /^d$+/; // ^ $ 两个都加, 那么字符串只能是和规则一致
/**
* 验证手机号码 ( 11位, 第一个数字是1就行 )
*/
let reg = /^1d{10}$/
// (.) => 点不是字符, 而是除了
以外的任意字符
let reg = /^a.b$/; // .可以代表任意字符
console.log(re1.test(a1b)); // => true
console.log(re1.test(a b)); // => true
console.log(re1.test(a
b)); // => false, .唯一不能匹配
// (.) => 代表(.), ()能把特殊字符传换成普通字符
let reg = /^a.b$/; // .在这里被转意了, 代表字符串.
console.log(re1.test(a.b)); // => true
console.log(re1.test(a1b)); // => false
console.log(re1.test(a2b)); // => false
|
let reg = /^d$|^s$/ // => 只能匹配一个空格或者一个数字的字符
console.log(reg.test( )); // => true
console.log(reg.test(1)); // => true
console.log(reg.test(2 0)); // => false
console.log(reg.test( 30)); // => false
/**
* | 如果但如使用, 规则会变得很混乱, 如同下面的一样,
* 本来匹配ab或者xd的字符, 但是规则变得异常混乱:
* 1. ab开头的字符(true)
* 2. ab开头的字符(true)
* 3. a开头b结尾, 中间是b或c的字符(true)
*/
let reg = /^ab|cd$/ // => 只能匹配以数字开头或者以空格结尾的字符
console.log(reg.test(ab)); // => true
console.log(reg.test(cd)); // => true
console.log(reg.test(abd)); // => true
console.log(reg.test(acd)); // => true
console.log(reg.test(abcd)); // => true
console.log(reg.test(bcd)); // => true
console.log(reg.test(ab123)); // => true
// 所以, 一般用 ()分组括号 来配合 | 的使用, 他有提高优先级的作用
let reg = /^(ab|cd)$/ // => 匹配字符 ab 或者 cd
console.log(reg.test(ab)); // => true
console.log(reg.test(cd)); // => true
console.log(reg.test(abd)); // => false
console.log(reg.test(acd)); // => false
console.log(reg.test(abcd)); // => false
console.log(reg.test(bcd)); // => false
console.log(reg.test(ab123)); // => false
[]
// 1. 中括号中一般出现的字符都代表本身含义, 除了 sdw这些
let reg = /^[abc]$/; // => 匹配[]中出现的字符一次
console.log(reg.test(a)) // => true
console.log(reg.test(b)) // => true
console.log(reg.test(c)) // => true
console.log(reg.test(ab)) // => false
console.log(reg.test(bc)) // => false
let reg = /^[abc]+$/; // => 匹配[]中出现的字符一次或者多次
console.log(reg.test(a)) // => true
console.log(reg.test(b)) // => true
console.log(reg.test(c)) // => true
console.log(reg.test(ab)) // => true
console.log(reg.test(bc)) // => true
console.log(reg.test(abc))// => true
let reg = /^[d]+$/; // => 匹配一个数字或者一串数字
console.log(reg.test(1)) // => true
console.log(reg.test(12)) // => true
console.log(reg.test(123))// => true
console.log(reg.test(1a2))// => false
let reg = /^[(10)]+$/; // => 匹配(或1或0或)一次或者多次
console.log(reg.test((10))) // => true
console.log(reg.test((10)) // => true
console.log(reg.test(()) // => true
console.log(reg.test(1a2)) // => false
// 2. 中括号中不存在多位数
let reg = /^[20]$/; // 匹配2或者0一次
console.log(reg.test(2)) // => false
console.log(reg.test(0)) // => false
console.log(reg.test(20)) // => true
let reg = /^[34-91]$/; // 匹配3或者1或者4-9的数一次
console.log(reg.test(1)) // => true
console.log(reg.test(3)) // => true
console.log(reg.test(4)) // => true
console.log(reg.test(34)) // => false
console.log(reg.test(91)) // => false