JS正则表达式(3) => 元字符详细解析

元字符详细解析

^ $
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 = /^1\d{10}$/
\
// (.) => 点不是字符, 而是除了\n以外的任意字符
let reg = /^a.b$/;	// .可以代表任意字符
console.log(re1.test('a1b'));	  // => true
console.log(re1.test('a\tb'));	// => true
console.log(re1.test('a\nb'));	// => false, .唯一不能匹配\n

// (\.) => 代表(.), (\)能把特殊字符传换成普通字符
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. 中括号中一般出现的字符都代表本身含义, 除了 \s\d\w这些
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值