分分28官网|分分28开奖网

实验:JS中的正则表达式应用
作者:强官涛   类型:Web前端    类别:实验   日期:2018-10-29    阅读:2001 次   消耗积分:0 分

正则表达式简介


正则表达式(英语:Regular Expression,在代码中常简写为regexregexpRE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

正则表达式并不是某一门编程语言专用,它是一项独立于任何编程语言的一套文本搜索和匹配规则,目前是所有的程序设计语言都提供了对正则表达式标准规则的支持而已。

所以要学习好正则表达式,我们重点其实并不在于在某个程序设计语言中怎么调用,用什么函数,传递什么参数,而是首先要完全理解正则表达式的语法规则。



正则表达式语法


标准的正则表达式的语法规则归类如下:


1.方括号:


方括号用于查找某个范围内的字符,如表9-5所示。


9- 5 正则表达式的方括号用法


表达式

描述

[abc]

查找方括号之间的任何字符。

[^abc]

查找任何不在方括号之间的字符。

[0-9]

查找任何从 0  9 的数字。

[a-z]

查找任何从小写 a 到小写 z 的字符。

[A-Z]

查找任何从大写 A 到大写 Z 的字符。

[A-z]

查找任何从大写 A 到小写 z 的字符。

[adgk]

查找给定集合内的任何字符。

[^adgk]

查找给定集合外的任何字符。

(red|blue|green)

查找任何指定的选项,redbluegreen

 

2.元字符


元字符(Metacharacter)是拥有特殊含义的字符,如表9-6所示。


9-6 正则表达式的元字符

元字符

描述

.

查找单个字符,除了换行和行结束符。

\w

查找单词字符。

\W

查找非单词字符。

\d

查找数字。

\D

查找非数字字符。

\s

查找空白字符。

\S

查找非空白字符。

\b

匹配单词边界。

\B

匹配非单词边界。

\0

查找 NUL 字符。

\n

查找换行符。

\f

查找换页符。

\r

查找回车符。

\t

查找制表符。

\v

查找垂直制表符。

\xxx

查找以八进制数 xxx 规定的字符。

\xdd

查找以十六进制数 dd 规定的字符。

\uxxxx

查找以十六进制数 xxxx 规定的 Unicode 字符。

 

3.量词:


量词主要解决匹配数量的问题,如表9-7所示。


9-7 正则表达式中的量词

量词

描述

n+

匹配任何包含至少一个 n 的字符串。

n*

匹配任何包含零个或多个 n 的字符串。

n?

匹配任何包含零个或一个 n 的字符串。

n{X}

匹配包含 X  n 的序列的字符串。

n{X,Y}

匹配包含 X  Y  n 的序列的字符串。

n{X,}

匹配包含至少 X  n 的序列的字符串。

n$

匹配任何结尾为 n 的字符串。

^n

匹配任何开头为 n 的字符串。

?=n

匹配任何其后紧接指定字符串 n 的字符串。

?!n

匹配任何其后没有紧接指定字符串 n 的字符串。




JS的RegExp对象



在JavaScript中,主要使用RegExp对象来处理正则表达式。RegExp 对象属性,如表9-8所示。


9- 8 RegExp对象的属性

属性

描述

global

RegExp 对象是否具有标志 g

ignoreCase

RegExp 对象是否具有标志 i

lastIndex

一个整数,标示开始下一次匹配的字符位置。

multiline

RegExp 对象是否具有标志 m

source

正则表达式的源文本。

 

RegExp 对象方法,如表9-9所示。


9- 9 RegExp对象的方法


方法

描述

compile

编译正则表达式。

exec

检索字符串中指定的值。返回找到的值,并确定其位置。

test

检索字符串中指定的值。返回 true  false

 


另外,字符串中的几个方法也同样支持正则表达式,如表9-10所示。


9- 10 支持正则表达式的字符串方法


方法

描述

search

检索与正则表达式相匹配的值。

match

找到一个或多个正则表达式的匹配。

replace

替换与正则表达式匹配的子串。

split

把字符串分割为字符串数组。

 

接下来,我们来看看关于JavaScript中处理正则表达式的对象RegExp的具体实例:


实例一:检查用户的输入是否为纯数字:


<script>
    
var content = prompt("请输入你的测试内容:");
    
var re = new RegExp("\\d+");   // 匹配纯数字1次或多次
    var result = re.test(content);
    
if (result) {
        
document.write("这是一个有效的数字.");
    }
    
else {
        
document.write("这不是一个有效的数字.");
    }
</
script>

 

当然,由于我们是对一个字符串进行检查,所以我们也可以使用字符串的match方法来处理。


实例二:检查用户的输入是否为一个有效的电话号码:


<script>
    
var content = prompt("请输入你的手机号码:");
    
var re = new RegExp("1[3578]\\d{9}");   // 匹配纯数字1次或多次
    var result = re.test(content);
    
if (result) {
        
document.write("这是一个有效的电话.");
    }
    
else {
        
document.write("这不是一个有效的电话.");
    }
</
script>

 

实例三:提取文本中的所有7位数字的号码:


<script>
    
var text = "文本内容,1234567,花费3456230元费用,来完成34345645个计划。";
    
var pattern = new RegExp("\\d{7}", "g");
    
while ((result = pattern.exec(text)) != null)  {
        
document.write(result);
        
document.write(pattern.lastIndex);
    }
</
script>

 

常见的正则表达式可以处理几乎所有的用户输入的验证问题,欲了解更多正则表达式,可以参考网址:

 






为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20181009_153045_341.jpg


版权所有,转载本站文章请注明出处:蜗牛学院在线课堂, http://www.mountsinaibaptistchurch.org/note/208
上一篇: 实验:JS实现HTML在线计算器
下一篇: 实验:利用CSS3实现立方体及移动组装效果
提示:登录后添加有效评论可享受积分哦!