正则就是用来操作字符串,为了性能尽量使用正则来操作字符串。
js中的字符串操作方法在这里先复习一下:
str.split(); 分割
str.toLowerCase(); 转小写
str.toUpperCase(); 转大写
str.charAt();下标
str.subString(1,2);截取字符串(包含起始,不包含结束)
str.indexOf();查找下标
str.lastIndexOf(); 从后面往前找
str.charCodeAt();转unicode
string.fromCharCode();将Unicode转为字符
str.replace();
str.slice() //跟substring类似
这里偏题说一下数组的splice与slice的区别
arr.splice(起始位置,n); 起始位置开始(从0开算),删除n个
arr.slice(起始位置,结束位置); 起始位置开始“截取(不是删除)”,m-n个,不影响数组本身
例:var arr1 = [1,2,3,4,5];
arr1.splice(1,2);//23 alert(arr1);//145
arr1.splice(2,2);//34 alert(arr1);//125
var arr2 = [1,2,3,4,5];
arr2.slice(1,2);//2 一个
alert(arr2.slice(2,2));//空
alert(arr2);//12345
正则的方法:
用正则首先创建一个对象var reg=new RegExp();
str.search(正则); 查找,只找第一次出现的位置,返回出现的位置
str.match(); //匹配出来的是一个数组,找不到返回null 把符合的全部提取出来
str.replace(正则,添加的对象);
正则的规则
js或者|| 正则的或者 |
转译:\
\n 换行
\d digital 数字
i:ignore 忽略大小写
g:global 全局
m:mutil-line 多行
选项不区分先后。
^行首
^不配合m,代表整个字符串的开头
^配合m,会识别字符串换行
$行尾
---------------------------------------------------
方括号:
1.[q,a,s] 代表 q|a|s
2./q[acd]c/ 代表qac | qcc | qdc
3.r[d,f] rd rf
4.\d [0,1,2,3,4,5,6,7,8,9] -代表一个区间 [0-9]
5.[^0-9] ^排除 非数字 [^a-z] 非字母
量词:
/\d\d\d\d\d/
{n} 正好n个 /\d{5}/
{n,m}最少n个,最多m个 /\d{1,4}/
{n,}最少n个,多了不限
/\d{n,-10}/ 错误写法
{,m} 最少不限,最多m个 不能这么写
{0,1}可有可无
简写:
+ {1,} 若干
* {0,}可以没有,有了不限
? {0,1} 可有可无
/ab+/ 是abbbbbbbbbbbb
/(ab)+/ 匹配的是ababab
()正则里面叫:分组
/abc[0-9]{1,4}/
abc1
abc11
abc111111 错了
转译:
\d digital 数字 [0-9]
\w word 单词
代表区间:[a-z0-9_]->字母、数字或者_
\s space 空白
\D 非数字 [^0-9]
\W 非单词 [^a-z0-9_]
\S 非空白
. 任意东西
\. 点本身(x想要.)
\\ \本身
\\\\ \\本身
/./ 任意一个
/.+/ 任意多个
/.*/ 可有可无
-----------------------------
校验座机号:
010-88688866
0312-1234567
88688866(不加区号也可以)
区号:(0[1-9]\d{1,2}-)?
号码:[1-9]\d{6,7}
/^(0[1-9]\d{1,2}-)?[1-9]\d{6,7}$/
reg.test(str)
如果符合返回true,否则返回false
只要其中有一部分符合就返回true,否则返回false
-----------------------------------------
校验邮箱:
用户名:\w+
\w+ @ [a-z0-9]+ (\.[a-z]{2,8}){1,2}
\w+@[a-z0-9]+(\.[a-z]{2,8}){1,2}
-----------------------------------
判断
/[\u4e00-\u9fa5]{2,8}/
=========================================================
var t = confirm('确认重置?');
if(!t)return false;
以上是正则最基本的用法