js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果_正则表达式

功能:$1-$9存放着正则表达式中最近的9个正则表达式的匹配结果,这些结果按照子匹配的出现顺序依次排列。

基本语法RegExp.$n

注意:这些属性是静态的,除了replace中的第二个参数可以省略RegExp之外,其他地方使用都要加上RegExp。

案例讲解:demo1

复制代码 代码如下:

<html>
<script language="javascript" type="text/javascript">
//创建要进行匹配的字符串
var objStr="这是我的手机号13100000000"
//创建正则表达式匹配手机号码
var re=/(13)(/d)(/d{8})/;//该正则表达式可以匹配手机号码以13开头的11为号码以()为子匹配的标志
document.write(objStr.replace(re,"$1$2********"));//处于隐私对字符串按照正则表达式的内容进行替换
//如果第二个子匹配结果,即手机号码中的第三位数字小于等于3则该手机号为联通号码,否则为其他运营商的号码
if(RegExp.$2<=3){
document.write("这是联通手机号");
}else{
document.write("这是移动或者电信手机号");
}
</script>
</html>

但是没进行一次匹配$n的值就改变一次,因此当我们匹配在一个字符串中出现多个手机号码时我们需要这样匹配

案例讲解demo2

复制代码 代码如下:

<html>
<script language="javascript" type="text/javascript">
//创建一个需要匹配的字符串
var objStr="这是我的手机号码13112345678, 这是我朋友的手机号码13912345678";
//创建匹配手机号码的正则表达式对象,隐式创建
var reg=/(13)(/d)(/d{8})/g;//g为全局匹配参数,匹配11位手机号码;
//将字符串进行匹配如果符合结果则将返回结果放入数组中
var arr=objStr.match(reg);
with(document){
if(arr!=null){//如果匹配有结果
write("检测到"+arr.length+"个手机号码");//显示匹配到多少个电话号码
//循环输出各个结果,并且判断运营商
for(var i=0;i<arr.length;i++){
//对匹配出来的电话号码进行二次匹配,获取号码的第三个数字
arr[i]=arr[i].toString().replace(reg,"$1$2********");
//以列表的形式输出各个电话号码
write("<li>"+arr[i]);
//如果第三个电话号码小于等于3则该电话号码为联通号码,否则为其他运营商的号码
if(RegExp.$2<=3){
write("这是一个联通手机号码!");
}else{
write("这是一个移动或者电信手机号码!");
}
}//for循环的结束
}//if的结束
}//with的结束
</script>
</html>

希望大家多多练习,有什么问题可以留言,我会尽全力帮助大家解决的!

时间: 2024-08-22 14:32:32

js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果_正则表达式的相关文章

积累比较常用的正则表达式(例如:匹配中文、匹配html)_正则表达式

正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本.许多程序设计语言都支持利用正则表达式进行字符串操作.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 匹配中文字符的正则表达式: [u4e00-u9fa5]   评注:匹配中文还真是个头疼的事,有了这个表达式就

正则表达式匹配用户密码_正则表达式

密码形式可以根据开发需求自己设定,下面是几个匹配密码的例子: 正则表达式 ^[a-zA-Z]\w{5,17}$ 匹配 以字母开头,长度在6~18之间,只能包含字符.数字和下划线 不匹配 正则表达式 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{4,8}$ 匹配 1agdA*$# | 1agdA*$# | 1agdA*$# 不匹配 wyrn%@*&$# f | mbndkfh782 | BNfhjdhfjd&*)%#$) 正则表达式 [^A-Za-z0-9

php匹配网址的正则 几乎可以匹配任何网址_正则表达式

比较简单的 $str = ''; $isMatched = preg_match('/^^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/', $str, $matches); var_dump($isMatched, $matches); 几乎可以匹配任何网址: ^((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*[\..])+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int

javascript RegExp multiline多行匹配影响的^$_正则表达式

内容全写注释里了- - 复制代码 代码如下: <script type="text/javascript"> /^$/.test('\n'); //false,为什么呢,说明如下 var p = /^/mg; var s = '1\n\n\n2\n\n3'; p.test(s); //跳过开始位置JS里好象没那个词- - p.test(s); alert(RegExp.rightContext.replace(/\x0A/g, '\\a')); //由此得出^匹配的是\n后

正则表达式——匹配规则介绍_正则表达式

基本模式匹配 一切从最基本的开始.模式,是正规表达式最基本的元素,它们是一组描述字符串特征的字符.模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符.重复出现,或表示上下文.例如: ^once 这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串.例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配.正如如^符号表示开头一样

JScript中正则表达式用法详解_正则表达式

呵呵,先罗嗦几句,去年用C#做了一个语法高亮的小东西,根据配制文件中的信息把所给代码格式化成HTML,使它能在网页上显示出和编辑器里一样的语法元素高亮的效果以及支持代码折叠.没错,就是和博客园上看到的类似啦.因为我当时使用的是MSN Space,它没有提供这项功能,只好自己写一个咯.     我使用的是C#进行编写,起初使用的是超级繁琐的for,while,switch,if等基本语句来判断关键字等等,大家莫笑话,本人愚笨当时还不知道正则表达式是何物,所以只能用这种土办法了,当然土办法还是有效果

asp.net 正则表达式[经常用的到]_正则表达式

复制代码 代码如下: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 复制代码 代码如下: 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 复制代码 代码如下: 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 复制代码 代码如下: 匹配HTML标记的正则表达式:< (\S*?)[^>]*>.*?|< .*? /

收集整理项目中常用到的正则表达式_正则表达式

最近做的一个内部系统项目,涉及大量的文本校验,里面用到了一些常用的正则表达式,收集不易,先记录在此,以备后用. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff]  可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r  可以用来删除空白行 匹配HTML标记的正则表达式:< (\S*?)[^>]*>.*?|< .*? /> 这个仅仅能匹配部分,对于复杂的

js正则表达式之exec方法讲解_正则表达式

功能说明:该函数通过对指定你的字符串进行一次匹配检测,获取字符串中的第一个与正则表达式的内容,并且将匹配的内容和子匹配的结果存放在返回数组中 基本方法:objReg.exec(string) objReg,RegExp对象的名称 string,要进行匹配的字符串 正则表达式exec()函数: exec() 方法用于检索字符串中的正则表达式的匹配. 返回值是一个数组,但是此数组的内容和正则对象是否是全局匹配有着很大关系: 1.没有g修饰符: 在非全局匹配模式下,此函数的作用和match()函数是一