正则表达式的学习使用

目录

1、创建正则表达式

2、正则表达式中的方法

3、 正则表达式中的优先级

4、 正则表达式中的元字符

5、字符类元字符

6、边界类元字符

7、量词类元字符


正则表达式是有规律的表达式,在js中常用来表单校验。

1、创建正则表达式

 1. 构造函数  RegExp

  var reg1 = new RegExp(/111/); 

 2.  正则的字面量 

var reg2 = /111/;

2、正则表达式中的方法

test():用来测试字符串是否符合正则表达式的规律,返回true / false。

replace() :replace 方法第一个参数可以写正则表达式

var str = "   123AD  asadf   asadfasf  adf  ";
//  替换掉字符串中的所有空白
var str2 = str.replace(/\s/g, "");   // str2 :"123ADasadfasadfasfadf"

// 将所有的ad/AD替换成xx
//var str3 = str.replace(/ad|AD/g, "yy");
var str3 = str.replace(/ad/gi, "yy");  // i :  ignore  忽略大小写
console.log(str3);

/\g:全局匹配global

/\i :忽略大小写ignore

3、 正则表达式中的优先级

|  :或  ,优先级最低

()  : 优先级最高

console.log(/(f|b)oot/.test("foot"));   // true
console.log(/(f|b)oot/.test("boot"));   // true
console.log(/(f|b)oot/.test("fb"));     // false

4、 正则表达式中的元字符

  •  \d:匹配一个数字  0-9
console.log(/\d/.test("a")); // false
console.log(/\d/.test("a1")); // true
  • \D:匹配非数字
console.log(/\D/.test("a"));  // true
console.log(/\D/.test("a1")); // true
console.log(/\D/.test("1"));  // false
  • \w:匹配单词字符  a-z  A-Z  0-9 _
console.log(/\w/.test("a"));   // true
console.log(/\w/.test("1"));   // true
console.log(/\w/.test(" "));   // false
console.log(/\w/.test("$%^&*"));  // false
  • \W:匹配非单词字符
console.log(/\W/.test("a"));   // false
console.log(/\W/.test("1"));   // false
console.log(/\W/.test(" "));   // true
console.log(/\W/.test("$%^&));  // true
  •  \s:匹配不可见字符  空格  换行(\n)  制表符(\t)
console.log(/\s/.test("a"));   // false
console.log(/\s/.test(" "));    // true
console.log(/\s/.test("1\na"));  // true
console.log(/\s/.test("1"));   // false
  • \S:匹配可见字符
console.log(/\S/.test("a"));   // true
console.log(/\S/.test(" "));    // false
console.log(/\S/.test("1\na"));  // true
console.log(/\S/.test("1"));   // true
  •  . :匹配除了换行和回车的任意字符
console.log(/./.test("abc"));   // true
console.log(/./.test("\n"));   // false
console.log(/./.test(" "));  // true

注:若只匹配小数点 ,需要转义 \.

console.log(/\./.test("a"));  // false
console.log(/\./.test("1.2"));  // true

5、字符类元字符

 []:表示一个字符的位置,在[]里面可以写上能够出现的字符。

在[]中 -  代表范围; ^  代表非。

// [abc]  ==> 匹配a或者是b或者是c ,本身自带或的含义
// [0-9]  ==> 匹配0-9中的任意一个
// [a-z]  ==> 匹配a-z中的任意一个
// [a-zA-Z0-9]  ==> 匹配 a-z  A-Z  0-9 其中任意一个字符

6、边界类元字符

^ 表示开头 ;$ 表示结束。

//^ $  一起使用实现精确匹配
console.log(/^chuan$/.test("chuan"));    // true
console.log(/^chuan$/.test("chuanchuan"));    // false

7、量词类元字符

 * :次数是0次或0次以上 ;相当于{0,}

+ :次数是1次或1次以上 ;相当于{1,}

? : 次数是0或者1 ;相当于{0,1}

 {m} :次数是m次

 {m,}  :次数是m次以上

 {m,n} :次数是m到n之间

// 匹配 没有a  或者一个a 或者是多个
console.log(/^a*$/.test(""));  // true
console.log(/^a*$/.test("a"));  // true
console.log(/^a*$/.test("aa"));  // true
console.log(/^a*$/.test("abc"));  // false

// +
console.log(/^a+$/.test(""));  // false
console.log(/^a+$/.test("a"));  // true
console.log(/^a+$/.test("aa"));  // true
console.log(/^a+$/.test("abc"));  // false

// ?  匹配没有a  或者是一个a
console.log(/^a?$/.test(""));  // true
console.log(/^a?$/.test("a"));  // true
console.log(/^a?$/.test("aa"));  // false
console.log(/^a?$/.test("abc"));  // false

// {}
console.log(/chuan{2}/.test("chuanchuan"));  // false
console.log(/(chuan){2}/.test("chuanchuan"));  // true
console.log(/chuan{2}/.test("chuann"));  // true

注:量词是就近修饰的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值