您的位置:首页 > 编程语言 > PHP开发

正则入门:匹配固定数目的字符

2011-02-03 00:00 1001 查看
尽管“?”、“+”、“*”这三个元字符的出现解决了很多问题,但是,它们并不完善:1.没有办法指定最多匹配多少个字符,比如说,我们要匹配手机号码,那么应该是 11 个数字,而“+”和“*”会匹配尽可能多的数字,不管是 17 个还是 18 个都认为是正确的。2.没有办法指定最少匹配多少个字符,“+”、“*”、“?”,所能提供的最少字符,要么零个,要么一个。

正则表达式中,可以在 单个字符(比如“j”)、字符组(比如“[abcde]”)、特定字符类型(比如“\d”)、单个任意字符(即“.”) 后面加“{数字}”,来表示匹配零个或多个字符组成的字符串。

例如:使用“\d{3}”,可以匹配从 000 到 999,这 1000 个数。而使用“a{6}”,则可以匹配“aaaaaa”(也只能匹配它,因为“a”是固定字符)。

现在我们考虑一个更复杂的例子,假如我们要匹配手机号码,那么它的规则是:首位为“1”,第二位为“3 或者 5”,后面 9 位任意数字。那么它的匹配应该是这样的:

1[35][0-9]{9}

效果演示

13536781234

18677530289

15345231123

本例代码

function reg_replace()
{
var test = document.getElementById("test");
aim = "1[35][0-9]{9}";
var regex = new RegExp("("+aim+")","g");
test.innerHTML = test.innerHTML.replace(regex,"<span style='background-color:orange'>$1</span>");
}

延伸阅读

此文章所在专题列表如下:

什么是正则表达式?

正则入门:匹配固定的单个字符

正则入门:匹配任意的单个字符

正则入门:字符组的使用

正则入门:在字符组中使用字符区间

正则入门:反义字符组的使用

正则入门:匹配空字符

正则入门:匹配一个或多个字符

正则入门:匹配零个或多个字符

正则入门:匹配零个或一个字符串

正则入门:匹配固定数目的字符

正则入门:匹配区间内数目的字符

正则入门:贪婪匹配

正则入门:惰性匹配

正则入门:两个匹配模式

正则入门:匹配单词边界

正则入门:边界的定义与相对性

正则入门:匹配非单词边界

正则入门:匹配文本首和尾

正则入门:子模式

正则入门:“或”匹配

正则入门:后向引用文本替换

正则入门:非获取匹配

正则总结:JavaScript中的正则表达式

正则总结:正则表达式在js中的高级应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: