宝哥软件园

JS基本系列的正则表达式

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

正则表达式是一件很棒的事情。今天简单的给刚接触JS的人普及一下。如有争议,请留言!

1.1什么是正则表达式

正则表达式是描述字符模式的对象。ECMAScript的RegExp类表示正则表达式,而String和RegExp都定义了强大的函数,用于模式匹配和使用正则表达式的文本检索和替换。

正则表达式用于字符串的模式匹配和检索替换,是字符串模式匹配的有力工具。

1.2正则表达式的作用

正则表达式主要用于验证客户端的输入数据。

在用户填写表单并点击按钮后,表单将被发送到服务器,在服务器上通常使用PHP、ASP.NET和JSP等服务器脚本进行进一步处理。因为客户端认证,可以在服务器端节省大量的系统资源,提供更好的用户体验。

其次,创建一个正则表达式==(123)==

要使用正则表达式,必须首先创建正则表达式对象。有两种方法可以创建对象:

2.1模式1:使用关键字new创建

var patt=new RegExp(模式,修饰符);参数1:正则表达式的模式。字符串形式

参数2:模式修改器。用于指定全局匹配、区分大小写匹配和多行匹配

Script type='text/javascript' /*创建正则表达式参数1:模式为:girl,这意味着它可以匹配像' girl '这样的字符串参数2:模式修饰符:gi g代表全局匹配I代表不区分大小写*/var pa=new RegExp('girl ',' gi ');//测试参数中的字符串“Hello My girl”是否与匹配模式匹配。Var isExist=pa.test('你好我的女孩');//在本例中,它是匹配的。该字符串包含girl,因此返回true alert(isExist)。//true/script2.2模式2:使用正则表达式直接度量

var pa=/pattern/修饰符;两个/的中间表示正则表达式的模式,最后一个/后面是模式修饰符

比如上面的例子可以写成var pa=/girl/gi;

注意:此时,可以将双引号或单引号添加到模式和模式修饰符中

脚本类型=' text/JavaScript ' var pa=/girl/gi;Alert(pa.test('刺痛我的女孩');//true/script iii。正则表达式模式修饰符==(126)==

JavaScript中有三种模式修饰符:G . I . u

g:表示全局。这意味着一个字符串将被匹配多次。如果不写g,只会匹配一次。一旦匹配成功,你就不会再匹配I,这意味着忽略case。这意味着匹配时,它不区分大小写。u:表示可以匹配多条线。4.正则表达式方法的详细说明==(127)==

经常使用的正则表达式方法有两种:test()和exec()

4.1试验()方法

测试(字符串)

参数:待匹配字符串的返回值:成功匹配为真,失败为假。当您只想知道目标字符串是否匹配某个模式,而不需要知道其文本内容时,使用此方法非常方便。因此,测试()方法经常用于if语句。

脚本类型=' text/JavaScript ' var pa=/girl/gi;If(pa.test('惊艳我的女孩'){ alert('这个女孩很适合你');}else {alert('你注定没有匹配的女孩');}/script4.2 exec()方法

Exec (string):这个方法是专门为捕获组而设计的

参数:要匹配的字符串的返回值:返回一个数组。如果不匹配,则返回null。返回值Array的描述:它确实是Array的一个实例。但是,此数组有两个附加属性:索引和输入索引:指示源字符串输入中匹配字符串的索引:指示匹配的源字符串。数组中的第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串。如果没有捕获组,则只有数组中的第一项。稍后我会谈到捕获组的概念。脚本类型=' text/JavaScript ' varpa=/girl/gi;var testStr='myGirl,yourgirl,his girl ';var girls=pa . exec(TestStr);//捕捉警戒(女生。长度' : '(数组的女孩实例));//正则表达式没有捕获组,所以数组长度为1 alert(girls[0]);//女孩第一次被抓获。//因为我们使用了全局匹配,所以在最后一次匹配后,我们继续从位置匹配alert(pa.exec(testStr)[0])。//少女警报(pa . exec(TestStr));//GirL alert(pa . exec(TestStr));//继续后没有匹配的字符串,所以返回null。//如果继续再次匹配,会回到字符串的开头,重写开始匹配。alert(pa . exec(TestStr));//女孩/.开始新一轮的匹配/脚本,所以如果我们想找到所有匹配的字符串,我们总是可以使用一个循环,结束条件是匹配结果为null

脚本类型=' text/JavaScript ' var pa=/girl/gi;var testStr='myGirl,yourgirl,his girl ';var女孩;而(女生=pa。exec(test str)){//如果等于null,将自动转为false,并结束。警惕(女孩);}/脚本组。在正则表达式中,用()括起来的任务是一个组。组可以嵌套。

脚本类型='text/javascript' /()中的内容是第一组(Girl)。其实我们可以看到,第0组女生(Girl) //以后会对应匹配结果数组的下标。var pa=/Girl(Girl)/gi;var test=' girlGirl abdfjla girlGirl fal girl ';var女孩;而(girls=pa.exec(test)){ //匹配后数组的第0个元素对应第0组的匹配结果,第1个元素对应第1组的匹配结果为(var I=0;一、女孩.长度;i ) { console.log(女生[I]);} console . log('-');}/脚本//最终运行结果:girl girl-girl girl-5。正则表达式规则==(124)==

表达式规则

正则表达式元字符是具有特殊含义的字符。它们有一些特殊的功能可以控制匹配模式

不可能。反斜杠后的元字符将失去其特殊意义。

字符类:单个字符和数字

[0-9A-Za-z]元字符/元字符匹配。匹配除换行符[a-z0-9]之外的任何字符匹配括号[a-z0-9]中字符集的任何字符匹配括号中字符集之外的任何字符d==[0-9]匹配数字d==[

字符类:空格元字符/元字符匹配匹配空字符b匹配空格字符n匹配换行符r匹配回车符t匹配制表符s匹配空格字符、空格、制表符和换行符S匹配非空格字符

角色类别:锚定角色

元字符/元符号匹配第一行匹配$结束行匹配

字符类:重复字符、元字符和元字符的匹配是什么?例如(x?匹配0或1 x*,例如,(x*)匹配0或任意数量的x,例如,(x)匹配至少一个x(xyz)匹配至少一个(xyz){m,n},例如,x{m,n} n=times=m匹配至少m个且最多n个x{n}匹配前一项n次{n,}

第六,常用正则表达式==(128)==

1.检查邮政编码

var pattern=/[1-9][0-9]{ 5 }/;//共6位,第一位不能为0var str=' 224000alert(pattern . test(str));2.检查文件压缩包

var pattern=/[w] 。zip | rar | gz/;//w表示所有数字和字母都带下划线。var str=' 123.zip//.意味着匹配。后跟一个选项警报(pattern . test(str));3.删除多余的空格

var模式=/ s/g;//g必须是全局的,才能匹配所有var reg=new RegExp('\s ',' g ');var str=' 111 222 333var result=str.replace(模式' ');//将空格与不带空格的警报(结果)匹配;4.删除空间

var模式=/^s/;var str=' goo glealert(str ' ' str . length);var result=str.replace(模式' ');警报(结果“”result . length);模式=/ s $/;result=result.replace(模式' ');警报(结果“”result . length);模式=/ s/g;result=result.replace(模式' ');警报(结果“”result . length);5.简单电子邮件验证var pattern=/([a-za-z0-9 _ 。-]) @ ([a-za-z0-9 _ 。-]) .([a-za-z] {2,4}) $/。var str='[email protected]';alert(pattern . test(str));var模式=/^([w.-] )@([w。-] ).([w]{2,4 })$/;var str='[email protected]';alert(pattern . test(str));七、支持正则表达式字符串方法

方法描述搜索检索与正则表达式匹配的第一个匹配项的索引。Match找到一个或多个正则表达式的匹配项。替换替换匹配正则表达式的子字符串。Split将字符串拆分为字符串数组。

脚本类型=' text/JavaScript ' var s=' ABC 123 ABAC ';alert(s . search(/ABC/gi));alert(s . search(/ABC/gi));//即使设置了全局模式,每次搜索都会从头看起。//match方法的功能与正则表达式的exec()方法相同,但match会将所有匹配项一次性放入一个数组中,并返回alert(s . match(/ABC/gi));//Abc,aBc alert(s.replace(/[ab]/gi,' x ');//将a或b替换为x var ss=s . split(/[0-9]/gi);//用一个或多个数字剪切。Abc,aBc警报(ss);/script以上是边肖介绍的JS基本系列的正则表达式。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

更多资讯
游戏推荐
更多+