使用正则表达式 RegExp

2016-11-16  本文已影响0人  亚历山大猫

写个匹配邮箱的 RegExp ?

相信有很多人都遇到过这样的需求:在页面表单做一个对输入邮箱字符串的合法性校验。一般情况下,不会正则表达式的小伙伴都是嘴角轻轻上扬,云淡风轻地在搜索引擎返回的结果列表中寻找自己想要的答案。对于一般的情况来说,网上的答案便足以应付PM的要求。但是,当你遇上奇葩的PM和奇葩的需求时...
当然,匹配邮箱只是正则表达式的一个常见应用,它还可以延伸到匹配网址,匹配手机号,匹配特殊字符串等等。正则表达式就如同一个多面过滤器,对被验证的对象拥有者高度自定义和严格的校验标准。不说精通,至少能看懂并敲出简单实用的正则表达式是任何一个码农要掌握的基本技能。立地看前端,本文就正则表达式在 JS 中的基础功能,对如何编写正则表达式做一个记录。


注意:
经过我几次测试,在 JS 中,直接写出 RegExp 字面量形式的执行速度要比调用 RegExp 对象构建快一些(个人实践结果),因此文章统一是用字面量形式表示正则表达式。

在 JS 中表示正则表达式

我们都知道,在 JS 中正则表达式用字面量形式表示的语法为:

var reg1 = /pattern/attributes;

pattern 是一个字符串,表示匹配的模式;
attributes 是 "g","i","m" 三个字符中的一个或多个,称为修饰符或者匹配属性。
JS 是用斜杠符号/把匹配模式包起来的,而里面的 pattern 模式就是要花力气研究的东西。

中括号表达式 [ exp ]

中括号表达式 [ exp ](英文 exp 是 expression 表达式的缩写)表示了匹配一个范围内的文本或字符串。譬如 [abc] 就是要匹配 "a"或者"b"或者"c"。它还支持这样的写法:

举例:我要检测任意字符串中的大写字母,要怎么写呢?

var reg = /[A-Z]/; // 就这么简单
var str = "abcX1289"
console.log(reg.exec(str)); // "X"

限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

特别字符

总结

今天在这里是稍微总结了下正则表达式的基本知识,简单的正则是能写了,能看了。但是要深入了解正则表达式并且高效运用,还早着呢!?所以下一篇有关正则的文章题目应该就是“深入探索正则表达式的运用”。
不过,这个我感觉急不来,得有时间学,有时间写才行。

上一篇下一篇

猜你喜欢

热点阅读