【JavaScript】——正则表达式

一.是什么

    正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript 的RegExp 类表示正则表达式,而String和RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。正则表达式主要用来验证客户端的输入数据。

    用户填写完表单单击按钮之后,表单就会被发送到服务器,在服务器端通常会用PHP、ASP.NET 等服务器脚本对其进行进一步处理。因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。


    如:机房收费系统中,注册用户需要输入卡号,卡号必须为数字,这个判断就可以交由JavaScript验证:

var  pattern=/^\d+$/;
var str='1256';
alert(pattern.test(str));
结果:

var  pattern=/\d/;
var str='12赵寒';
alert(pattern.test(str));
结果:



二.怎么用

创建:

1.new运算符

<span style="font-size:18px;">var box = new RegExp('box');</span>
2.字面量

<span style="font-size:18px;">var box = /box/;</span>

测试:

RegExp包括两个方法:test()和exec()。

test: 在字符串中测试模式匹配,返回true 或false
exec: 在字符串中执行匹配搜索,返回结果数组

如:

var pattern = new RegExp('box', 'i'); //创建正则模式,i表示不区分大小写
var str = 'This is a Box!'; //创建要比对的字符串
alert(pattern.test(str)); //通过test()方法验证是否匹配:匹配输出true,否则false
alert(pattern.exec(str));//通过exec()方法验证是否匹配:匹配输入匹配的字符串,否则null

test():                                                                                                                      exec():
          

String对象的正则表达式方法:


以replace为例:

<span style="font-size:18px;">var pattern=/zhaohan/ig;
var str='My name is zhaohan';
alert(str.replace(pattern,'赵寒'));</span>
结果:


属性:



/*使用静态属性*/
var pattern = /(g)oogle/;
var str = 'This is google!';
pattern.test(str); //执行一下
alert(RegExp.input); //This is google!
alert(RegExp.leftContext); //This is
alert(RegExp.rightContext); //!
alert(RegExp.lastMatch); //google
alert(RegExp.lastParen); //g
alert(RegExp.multiline); //false



<span style="font-size:18px;">/*使用实例属性*/
var pattern = /google/ig;
alert(pattern.global); //true,是否全局了
alert(pattern.ignoreCase); //true,是否忽略大小写
alert(pattern.multiline); //false,是否支持换行
alert(pattern.lastIndex); //0,下次的匹配位置
alert(pattern.source); //google,正则表达式的源字符串
var pattern = /google/g;
var str = 'google google google';
pattern.test(str); //google,匹配第一次
alert(pattern.lastIndex); //6,第二次匹配的位</span>


元字符:

    正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。反斜杠后的元字符将失去其特殊含义。

    在此一类举例,其它元字符见下方附表。



<span style="font-size:18px;">var  pattern=/^\d+$/;
var str='1256';
alert(pattern.test(str));</span>

最初举的卡号必须为数字的例子,就是利用了元字符:/d。

^在[]数组内,表示非。但在/后出现,表示从第一个字符开始验证。$表示从最后验证。

^、$都有的情况说明:str里的字符必须全部满足pattern。


总结:

    对于js这块,在开始学之前,我就一直很期待了,因为我莫名的对关于UI设计这块很感兴趣。包括:HTML、CSS...

    正则表达式,在学之前,感觉它很高大上,但学完后,就发现:既简单、又实用......我喜欢~~

      


附表:
















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值