正则表达式主要是进行字符串的匹配的。它是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述了在搜索文本时要匹配的一个或多个字符串。
正则表达式中的转义符号:
\s匹配空白字符,包括空格、换行、回车、Tab键
\S匹配非空白字符
\d匹配0-9之间的数
\D匹配(0-9)外的字符
\w匹配(0-9,a-z,A-Z)
\W匹配\w之外的字符
^表示匹配字符串的开始的位置
$表示匹配字符串的结束的位置
在正则表达式后加上i表示忽略大小写
加上g表示全局匹配
[]表示匹配[]之间的某一个字符
如:/^[12]$/ 表示匹配1,或2 ;只有字符串是1,或2时才匹配成功
/^[12]+$/表示匹配1,2,12,21,等1与2的任意组合
匹配转义字符本身,需在转义字符前加\,如:
/^[0]\\d[m]$/ 表示匹配”0\dm”
^写在正则表达式某个单元内部,表示反转字符,如:
/^[^0-9]$/ 表示匹配非0-9的字符
{m,n},表示出现的个数,至少为m,之多为n
如/^\d{3,5}$/,表示匹配至少三个0-9之间的数,至多5个0-9之间的数
{m}匹配m次
如/^\d{3}$/,表示正好3个数字
{m,}表示至少匹配m次
如/^\d{3,}$/,表示至少3个数字
+表示匹配多次(至少一次) 等价于{1,}
?表示匹配0次或1次 等价于{0,1}
. 表示匹配除“\n”之外的任何单个字符。若要匹配包括“\n”在内的任意字符,请使用诸如“[\s\S]”之类的模式。
* 表示匹配任意次
如/^\d*$/表示匹配空(匹配)或字符串中全为数字
以后会详细总结一下正则表达式的写法。下面,列举几个项目中遇到的正则表达式:
/^(-)?((0(\.\d{1,3})?)|([1-9]\d{0,}(\.\d{1,3})?))$/;//任意最多保留三位的小数(-0合法)
/^(.){1,}$/;//非空
/^[1-9]\d{4,10}$/;//qq号码,最少5位,最多暂定为11位
/^((0(\.\d{1,2})?)|1)$/;//0-1之间的两位小数,包括0,1(当为1时,不能带小数点)
/^\w+@[0-9a-z]+\.[a-z]+$/i;//EMail(忽略大小写)
此处,仅仅列举正则表达式在js中的常用写法(将正则表达式写到两个’/’之间(这种写法是Perl中的写法)),关于正则表达式的语法及使用方法,仅列举简单例子。未讲到或涉及的部分,还请参照专业网站。(以上若有不当或错误之处,还请指正。仅用作交流,转载请标明出处)。
参考:
https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx