JavaScript的正则

正则的创建

字面量创建

var reg = /hello/;

直接实例化

var reg = new RegExp('hello');//需要加单双引号,但是不要加//

正则的修饰符

在创建的时候加入,例:

 let reg = /hello/g;  //匹配全局hello    
 let reg1 = /Hello/i;  //匹配时不区分大小写
 let obj = new RegExp('js','g');
标志说明:     i:忽略大小写    g:全局匹配         gi:全局匹配+忽略大小写

正则对象调用

test()方法 - 判断正则表达式是否匹配成功

let str = '难道你就是那万中无一的绝世高手?';
let obj = /万中无一/;
let ret = obj.test(str);
document.write(ret);//通过正则返回true 否则返回false

exec方法 - 匹配符合正则表达式条件的数据(需要加入全局修饰符)

 let str = '阿强爱上了阿珍,在淅沥沥的雨中,阿强爱上了阿珍';
 let obj = /阿强/g;
 //document.write(obj.exec(str));//单个调用
 let arr;
 while(row = obj.exec(str)) {//循环调用
	document.write(arr);
 }

在字符串中使用正则
search() 方法
用于搜索字符串中指定的元素,返回符合条件的第一个元素下标,没找到返回-1 不能使用修饰符
例:

let str = "I have a  dream!"; 
console.log(str.search(/dream/));

match()方法
用于匹配符合条件的内容,返回一个数组
例:

var str="It is at our mother“s knee that we acquire our noblest and truest and highest , but there is seldom any money in them";  
console.log(str.match(/is/g));

replace() 方法
用于替换字符串中的数据,返回新的字符串
例:

let str = '你是要我打你还是要我打tm啊?!你搞得我好乱啊!';
console.log(str.replace(/我/g, ‘周星星’)); 

更复杂的正则表达式

正则字符类

元字符说明
[a-z]匹配a-z任意一个字符
[A-Z]匹配A-Z任意一个字符
[a-zA-Z]匹配26个英文字母(大小写)
[0-9]匹配一个数字
[0-9a-zA-Z_]匹配一个字符可以是数字、字母和下划线
[^0-9]匹配非数字
[^a-zA-Z]匹配非字母

常用字符类

元字符说明
\d匹配数字相当于 [0-9]
\D匹配任意非数字的字符 [^0-9]
\w匹配字母或数字或下划线 [0-9a-zA-Z_]
\W匹配任意不是字母,数字,下划线 [^0-9a-zA-Z_]
\s匹配任意的空白符
\S匹配任意不是空白符的字符
.匹配除换行符以外的任意单个字符
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

重复字符

限定符说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次,最少出现n次
{n,m}重复n到m次
[]匹配字符组内的字符 [abc]
( str1 l str2 )匹配字符串str1或者str2

常用定位符

^ 限定行首数据,以....开头  $ 限定行尾数据,以...结尾

例1:检测是否包含数字的正则

let reg = /[0-9]/;
let reg = /\d/

例2:检测重复字符

let reg = /8*/; // 可以有8也可以没有
let reg1 = /8?/  //8最多出现一次
let reg2 = /8+/  //8最少出现一次
let reg3 = /8{6}/  // 8 出现6次
let reg4 = /8{6,10}/  // 8最少6次最多10次
let reg5 = /8{3,}/ // 最少3次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值