【详解js中的正则表达式】

首先什么是正则表达式?
正则表达式用于定义一些字符串的规则,计算机根据其判断字符串是否符合规则。


正则表达式的本质是对象。两种定义方式,一种根据new关键字创建,一种是字面量的形式创建。如下:
1.var 变量=new RegExp("正则表达式","匹配规则")
2.var 变量=/内容/匹配模式;

匹配模式有两种:

ig
忽略大小写全局匹配模式

例子:检测str是否符合正则表达式(含有a的意思)

var reg=/a/;
var str="abc";
console.log(reg.test("abc"));

1.那么怎么检查一个字符串含有a或b呢?

var reg=/ab/;
写成这样的话str=bac显示false,这是因为这里的意思是同时含有ab且顺序是ab,正确写法应该是reg=/a|b/;或者reg=[ab]

[]的意思就是“或”
2.检查一个字符串是否含有abc,adc,aec就是var reg=/a[bde]c/;

扩充:1.var reg=/[^ab]/;意思是除了自身
2.var reg=/^ab/i;以ab整体开头,不区分大小写
3.var reg=/a$/;是否以a结尾
4.var reg=/^a$/; 意思是否完全符合正则表达式

正则表达式匹配方法使用:

1.split 以·····进行分割

var str="1a2b3c4d6f";
var result=str.split(/[a-z]/);
console.log(result);//结果是true下面这个

在这里插入图片描述
这是个对象最后还有个空是因为最后的f被去掉了,这个方法不指定全局也会替换所有的字母

2.search搜索指定内容返回索引号
全局模式也不起作用,只返回第一个元素的位置。

3.match从一个字符串中提取符合条件的内容
返回的是对象

4.replace()参数1:被替换的内容2.新的内容
默认只会替换第一个,但可以设置全局匹配模式

var str="1a2b3c4d6aa";
console.log(str.replace(/a/gi,"@_@"));

当你检查是否含有1000个a的时候总不可能敲1000个a吧,所以写成var reg=/a{3}/;
拓展一下:
1.var reg=/ab+c/;表示至少一个b相当于b{1,};
2.var reg=/ab*c/;表示0个及多个相当于b{0,}
2.var reg=/ab?c/;表示0个或一个相当于b{0,1}

检查一个字符是否含有.:

var reg=/./;

这样是错误的,因为.表示任意字符的意思,得使用转义字符来表示


使用构造函数时,参数是一个字符串,而\是字符串中的转义字符

转义字符表示内容
\w表示任意字母、数字、_
\W除了数字、字母、_
\d任意的数字[0-9]
\D除了数字[^0-9]
\s空格
\S除了空格
\b单词边界

比如去除字符串中的空格:=>使用’'替换空格

var str="     hello     ";
str=str.replace(/\s/g,'')
console.log(str);

得赋值,不然没有区别,这里只替换了前面的空格

正确的str=str.replace(/^\s*|\s*$/g,'')*换成+也行

使用构造函数是var reg=new RegExp("\\s","g");

举例:创建一个正则表达式,是否是一个合法的手机号
2.电子邮件的正则表达式(可以网络查询,大多数正则表达式网络都有)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值