普通字符与元字符
- 我们自己写的规则,比如说
/男/
,/刘德华/
,/abc/
这些都是字面意思,写男就是找男,写刘德华就是找刘德华,写abc就是找abc,这就会所谓的普通字符
- 但是在正则中用一些特殊的符号表示了特殊的含义,也就是说,你写一个符号,它可能不是找某个符号,而是找它所蕴含的特殊含义。例如:
/./
, 它不是找.
,因为.
在正则中有特殊含义,那么对于这种有特殊含义的字符,我们就称之为元字符
/^内容/ // 它不是找^内容,因为^有特殊含义,它代表以什么开头,所以这句话的意思是找 以某个内容开头的字符串
/内容$/ // 以什么结尾,以这个内容结尾的
// 默认这种写法代表只要任意位置有男这个字即可
console.log( /男/.test('这个世界,有男有女!') ) // true
console.log( /男/.test('男人就是难') ) // true
console.log( /男/.test('我的性别是男') ) // true
// 找以 男 开头
console.log( /^男/.test('这个世界,有男有女!') ) // false
console.log( /^男/.test('男人就是难') ) // true
console.log( /^男/.test('我的性别是男') ) // false
// 找以 男 结尾
console.log( /男$/.test('这个世界,有男有女!') ) // false
console.log( /男$/.test('男人就是难') ) // false
console.log( /男$/.test('我的性别是男') ) // true
- 精确匹配
-
- 把
^
和$
结合起来就是精确匹配 - 语法
- 把
/^内容$/ // 代表字符串只能是这个内容,不能有多余的部分,如果只是这个内容就得到true,否则得到false
// 这个就叫精确匹配
// 只能有 黑马程序员 这个五个字,不能有其他任意内容
console.log( /^黑马程序员$/.test('黑马程序员棒棒哒') ) // false
console.log( /^黑马程序员$/.test('黑马程序员非常牛逼') ) // false
console.log( /^黑马程序员$/.test('黑马程序员黑马程序员黑马程序员') ) // false
console.log( /^黑马程序员$/.test('黑马程序员') ) // true