正则表达式——学习总结

javascript中简单应用正则表达式

1.判断str是否为"abc"

<script>
    var reg = /^abc$/,
        str = "abc";
    alert(reg.test(str)); // true
</script>

2.全局匹配'is'(忽略大小写)

<script>
    var reg = /is/ig,
        str = "this is test for 'Is'";
    console.log(str.match(reg)); // Array[3]={"is","is","Is"}
</script>

3.寻找字符a或A

<script>
    var reg = /a/, 
        regexp = new RegExp(reg,"i"), // reg为字符串其中ig无效
        str = "hello A,yes";
    alert(regexp.test(str)); // true 
</script>

 

 

正则表达式语法

常用元字符
.   除换行以外任意字符
\w  字母数字下划线
\s     空白字符
\d    数字
\b    单词开始或结束
^     字符串开始
$     字符串结束

转义符

\\
\*
\.
\(

限定符
* 0或更多次
+ 1或更多次
? 0或1次
{n} n次
{n,}
{n,m}

范围字符 []
[aeiou]
[0-9]      \d
[a-z0-9A-Z]     \w

分歧条件 |
0\d{2}-\d{8}|0\d{3}-\d{7}
0712-2564250
027-48385562

分组 ()
(\d{1,3}\.){3}\d{1,3}
192.168.5.22

反义
\W
\S
\D
\B

 

 

练习

(1) 校验邮政编码(由六位组成)
^\d{6}$
(2) 校验用户姓名:只能输入1-30个以字母开头的字串。
^[a-zA-Z]\w{0,29}$
(3) 校验密码:只能输入6-20个字母、数字、下划线
^\w{6,20}$
(4) 校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串。
^[a-zA-Z][a-zA-Z0-9_.]{4,19}$
(5) 校验E-mail地址
^\w+@\w+(\.\w+)+$
(6) 变量(首字母或下划线,字母下划线数字,长度1-31)
^[a-zA-Z_]\w{0,30}$
(7) 人民币金额检测(1、1.2、1.25、.25、0.25、-.2)
^(0|-?[1-9]\d*(\.\d\d?)?|-?0\.\d\d?)$

 

分析

/d{1,4}|m{1,4}|yy(?:yy)?(HhMsTt)\1?|[LloSZ]|"[^"]*"|'[^']*'/g

 

<script>
    var reg = /d{1,4}|m{1,4}|yy(?:yy)?(HhMsTt)\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
        str = "dd_mmm_yyyyHhMsTtHhMsTtL\"str\"_\'str\'";
    console.log(str.match(reg)); // ["dd", "mmm", "yyyyHhMsTtHhMsTt", "L", ""str"", "'str'"]
</script>

 

(?:exp)    查找exp但不分组

\1   分组引用,相当于第一个分组(关于如何分组?...)。

 

 

参考 (references)

w3school

正则表达式入门

...

posted @ 2016-05-18 17:14  kkco  阅读(513)  评论(0编辑  收藏  举报