首先就正则两个字解释:顾名思义,正则可以理解为正确的规则.
先来复习一遍js中对字符串的操作
search()寻找字符串中某字符第一次出现的位置(下标),若找不到返回-1.
substring(a,b)不包含结束位置,ab指的是下标.获取a到b之间的字符.
charAt(a),根据下标找出字符串里的字符.注意search返回下标,而charAt返回字符.
split("-")在字符串中若有"-",则用"-"分割字符串,返回数组.
match(re)匹配 检索字符串,按照re的规则提取出来字符串,返回数组
replace(a,b)将a替换为b
正则表达式可以极大简化普通字符串操作(简化90%吧,不夸张的说)
正则表达式仅仅是一个计算机方便识别并操作字符串的式子,
RegExp是其大名,但是比较麻烦,比如
var str="abAd";
var re=new Reg Exp("a","i"); 第一个参数即为正则表达式,第二个参数(即正则的选项)为忽略大小写,ignore
官方说法是js风格的正则,但是它有个小名更简单,以上可以简写为
var str="aijg";
var re=/a/i;
真的是超级简单,所以大家都是用小名.官方说法为perl风格.
除了直接写要找的字符外,正则还有一些转义(转变意义)字符更方便
\d digital代表某个数字, \D 大写就代表相反区间[^0-9],
[]表示在一个范围内取一个值例如/1a2|1b2|1c2/
可以简写为/1[abc]2/
^在[]中代表排除,意为除此之外.-代表范围,0-9代表0到9的数字,
\w word 字符[a-z0-9_]
\W大写代表相反[^a-z0-9_]
\s space 空白 代表空格,制表符等空的东西 \S相反,所有不空的东西
正则里的量词:{m,n}代表m到n个字符,不写m代表最多n个,不写n代表至少m个,只写m代表正好m个例如
\d{m,n}
意为m到n个数字,+表示多个的意思例如/\d+/
,多个数字.相当于\d{1,}
.*
表示{0,}
但不建议用,?
等于{0,1}
,\.
代表.
(点)
^不在[]里,代表行首,$代表行尾,例如var re=str.repalce(/^\s+|\s+$/g,"");
替换字符串左右两边的空格为空(去掉行首尾空格);
|
是或的意思g
是global 正则选项,全局匹配,意为全部.