正则

正则就是用来操作字符串,为了性能尽量使用正则来操作字符串。

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

-----------------------------------------

校验邮箱:

[email protected]

[email protected]

[email protected]

用户名:\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;

以上是正则最基本的用法

你可能感兴趣的:(正则)