正则基本用法

本文深入探讨了JavaScript中的正则表达式,包括其定义、作用、使用方式如test()和exec(),以及常用元字符和修饰符。通过实例展示了如何匹配整数和验证用户名,同时讲解了字符串的match()、replace()、split()和search()方法。此外,还介绍了正则表达式在表单验证中的重要性,并提供了去除字符串首尾空格的trim()方法示例。
摘要由CSDN通过智能技术生成


js 最初就是用来做表单验证的

什么是正则表达式:
regular expression js中RegExp类表示正则表达式 它是一个描述字符模式的对象

正则作用:
1.用来验证字符串是否符合规则
2.从字符串中获取一部分符合规则的内容
1.通过new关键字来声明一个正则对象
第一个参数:正则的主体, 字符串
第二个参数 :修饰符 字符串

i 不区分大小写
g 全局匹配
m 换行匹配

2.通过字面量来赋值
var str = /主体/修饰符;

		var str = new RegExp("are hello are", "ig");
        var str2 = /are/ig;
        console.log(str);
        console.log(str2);

在这里插入图片描述

test:
格式:正则对象.test(“字符串”)
返回值:布尔值
功能:校验字符串是否复合规则

		var str = new RegExp("are hello", "ig");
        var str2 = /are/ig;
        //test 验证字符串从第一个字符开始连续的字符与正则中存放的第一个参数中的字符完全一致则返回true(如:正则:"are hello" ,验证字符串"are hello word"返回true)(正则验证对空格敏感)
		console.log(str.test("are hello word"));
        console.log(str.test("are  hello"));
        console.log(str.test("are"));

10119160108438.png)

exec:
格式:正则对象.exec(“字符串”)
功能:在匹配字符串,如果匹配成功,则返回的是一个数组,数组中存放的是第一个符合条件的内容
如果匹配不成功,则返回是null

 		var a = ("are hello are word are");
        var str = new RegExp("are", "g")
        //返回值是正则中的参数在要验证的字符串中所在位置的下标(一个字母站一个位置)(多次调用时,第一次返回在字符串中的第一个为值,第二次调用返回第二个位置,一直到返回null,返回null后再次调用,则从第一个位置重新开始)
        console.log(str.exec(a));
        console.log(str.exec(a));
        console.log(str.exec(a));
        console.log(str.exec(a));
        console.log(str.exec(a));
        console.log(str.exec(a));

在这里插入图片描述

如果有全局修饰符g,则exec第二次捕获会从第一次捕获的位置开始向后去查找。
直到找不到了,返回null
再次捕获时,则从头开始。
字符串的函数:
1.match()
格式:字符串.match(正则)
功能:在字符串中匹配符合规则的内容
返回值:数组,匹配成功的内容
匹配没有成功,返回null

var str = "have a good day today,a,a,a";
        console.log(str.match(/a/ig));

在这里插入图片描述

2.replace()
格式:字符串.replace(oldStr/正则,newStr);
功能:将新的字符替换掉旧的字符

var str = "have a good day today,a,a,a";
        console.log(str.replace(/a/ig, "A"));

在这里插入图片描述

3.split()
格式:字符串.split(“分割字符”/正则)
功能:用分隔符将字符串进行分割
返回值:分割后的字符串组成的数组

var str = "have a good day today,a,a,a";
//返回以正则中第一个参数为分割点生成的新数组
        console.log(str.split(/ /ig));

在这里插入图片描述

4.search()
功能:找到符合条件的第一个字符的位置(下标)
格式:字符串.search(字符串/正则)
返回值:找到则返回下标
未找到则返回-1

var str = "have a good day today,a,a,a";
        console.log(str.search(/g/g));

在这里插入图片描述

元字符:
组成正则的基础符号,具有特殊的含义。

. 匹配单个的任意字符
[范围] 匹配单个范围内的字符
[0-9] 匹配一个数字 范围为 0-9
[0-9a-zA-Z_]
[^范围] 匹配任意一个除了范围内的字符
[^0-9] 匹配任意一个非数字的字符 = [0-9]取反
\w 匹配单个的字母,数字和下划线 = [0-9a-zA-Z_]
\W 匹配单个非字母数字下划线
\d 匹配单个数字 等同 [0-9]
\D 匹配单个非数字 等 同 [^0-9]
[\u4e00-\u9fa5] 匹配中文

空白字符
\s 匹配一个任意的空白字符 空格 /n /t
\S 匹配一个任意的非空白字符

锚字符
^ 行首匹配 必须以它后面字符开头
$ 行尾匹配 必须以它后面字符结尾

		var str = "l";
        var str1 = "lsl";
        var reg = /^l$/ig;
        console.log(reg.test(str));
        console.log(reg.test(str1));

在这里插入图片描述

限定元字符 (x:表示任意的单个字符)

格式:
x? 匹配0个或者1个x(看例子:匹配整数,更容易理解)
x+ x字符必须至少出现一次(1次或多次)
x* x 字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
x{m,n} 匹配至少m个字符,最多n个 包含n
x{m} 匹配m个字符
x{m,} 匹配m个–多个
() 小括号括起来的字符串会被当成一个字符去处理

|
类似或

修饰符:
i 不区分大小写
g 全文检索
m 换行匹配
在字符串中,如果换行,重新计算行首

补充:
trim() 去除字符串首尾的空格,返回值:去除后的字符串,不会对原有的字符串造成影响

 var str = " 我是一只小小小小鸟! ";
        //前后都有一个空格
        var str1 = "我是一只小小小小鸟!";
        //前后都没有一个空格

        console.log(str.trim());
        console.log(str1.trim());

在这里插入图片描述

例子

匹配整数
 var num = "11";
        var reg = /(^(-|\+)?[1-9]\d*$)|^0$/;

        console.log(reg.test(num));
匹配用户名
// 用户名 6-11位,以字母开头
        var userName = "admin1a";
        var reg = /^[a-zA-Z]\w{5,10}$/;
        console.log(reg.test(userName ));

不包含特殊字符及数字
/^((?!\\|\/|:|\*|\?|<|>|\||'|%|@|\d|#|\$|&|!).){1,}$/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值