javascript正则表达式根本语法归纳
javascript正则表达式基本语法归纳
当我们在做表单验证或者在代码中查找替换字符串时,我们就会用到正则表达式。刚接触正则表达式的时候感觉它就像乱码一样完全看不懂,在慢慢接触了解掌握匹配规则之后发现正则表达式并不难理解,正则就像一个工具一样,匹配出符合规则的字符串,正则表达式语法多借鉴Perl语言中的正则表达式的语法,在js中通过RegExp对象来使用正则。RegExp对象的test()方法来用以测试传入的参数字符串是否与RegExp对象定义的模式字符串相匹配。下面就归纳总结几条基本的用法。
一,简单的正则表达式
正则以//开头和结尾(有点像注释的写法),创建正则表达式: var myRegExp = / \b'|'\b/; 也可利用RegExp对象的构造函数来创建正则,var myRegExp = new RegExp(”/……/“);通常用第一种。举个例子:
var myString = "aa,bb,cc,aa,aa," var myRegExp = /aa/; myString = myString.replace(myRegExp,"AA"); alert(myString);
运行后会发现只有第一个aa被替换掉了,如果我们要进行全局查找进行替换,就要用到正则表达式三个特性:
特性字符 | 描述 |
g | 表示全局匹配,即查找所有与模式匹配的子串,而不是查找到第一个就停止 |
i | 忽略字母大小写, |
m | 多行标记(该标记指定了元字符^和$可以匹配多行字符串开始和结束位置) |
上面的例子如果查找全局的aa,则要写成 var myRegExp = /aa/g;
二,正则表达式中的特殊元字符
1,文本数字标点符号元字符,
字符类 | 匹配的字符 | 实例 |
\d | 0-9中的任何数字 | \d\d将匹配72,但不匹配aa或7a |
\D | 任何非数字字符 | \D\D\D将匹配abc,但不匹配123,或1aa |
\w | 任何单词字符(包括A-Z,a-z,0-9,以及下划线_字符) | \w\w\w\w匹配Aa_1 |
\W | 任何非单词字符 | \W将匹配@ |
\s | 任何空白字符,包含水平制表符,换行符,回车符,走纸符,垂直制表符 | \s匹配tab |
\S | 任何非空白字符 | |
. | 除了换行符(\n)之外的任何单个字符 | |
[…] | 匹配除了方括号之内的任何一个字符 |
注意:正则中元字符的大小写具有完全不同的意义,在写正则表达式时多加注意
2,正则中的重复字符
专用字符 | 含义 | 实例 |
{n} | 前面的项重复n次 | x{2}将匹配xx |
{n,} | 其那面的项重复n次或者n次以上 | x{2,}将匹配xx,小小小,xxxx…… |
{n,m} | 前面的字符至少出现n次,最多出现m次 | x{2,4}将匹配xx,xxx,xxxx |
? | 前面的项出现0次或一次 | x?将匹配空串或者x |
+ | 前面出现一次或多次,但至少出现一次 | x+匹配x,xx…… |
* | 前面的项出现0次或多次 | 可能匹配空串 |
3,位置元字符
位置元字符 | 描述 |
^ | 该元素表示匹配字符串的开始位子,或者匹配多行字符串每一行的开始位置, |
$ | 该元素表示匹配字符串的结束位子,或者匹配多行字符串每一行的结束位置, |
\b | 匹配单词的分界位置,(单词的分界位置就是位于一个单词字符与一个非单词字符之间的位置) |
\B | 匹配单词的非分界位置, |
四,参考资料
1,慕课网 http://www.imooc.com/learn/44 表单验证的一个小例子。
2,正则表达式必知必会 下载电子书 (专门介绍正则的一本书),
3,javascript入门经典 下载电子书 (page:311,入门)