
正则匹配问号的重要性
文章开头介绍问题:
在正则表达式中,某些符号可以用来匹配可选字符。例如,问号 (?) 表示该字符出现零次或一次。在匹配手机号的正则表达式 /^0?1[3|4|5|8][0-9]d{8}$/ 中,为什么前面要加上 0??
答案分析:
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
以前,拨打长途手机号码需要在前面加一个 0。因此,该正则表达式考虑到这种情况,通过使用 0? 来匹配可选的 0 字符。
如果我们不使用 0?,而是使用 /^1[3|4|5|8][0-9]d{8}$/,那么正则表达式将要求手机号必须以 1 开头,而不会匹配带有 0 的合法手机号。
换句话说,0? 使得该正则表达式能够匹配所有有效的手机号,无论它们是否包含 0。









