正则表达式Reg

JS的正则表达式,以前总是弄不懂里面的各种符号的意思,学了几遍还是很懵圈,只会用别人写好的代码块,以至于很久很久都弄不明白里面的含义,最近做了一下全面的复习,把正则用到的方法都总结了一遍,权当是加深一下记忆,因为古人说过温故而知新。

[!]正则表达式主要由修饰符、转义字符、量词、方括号、检索方法组成。

[正则表达式的写法]=>

/^.*(?=.)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;

上面是效验密码强度的正则表达式,至少大于6个字符,且包含数字、大小写字母和特殊字符。

[修饰符]=>

[!]注意:正则表达式规定,正则表达式在检索的时候是从头开始检索,当检索到第一个符合要求的内容时就直接退出,这就导致检索不到后面的内容。

这个时候就出现了修饰符来规定检索的空间。

i:不区分大小写检索字母

'Hello'.match(/hello/i);

返回:[ 'Hello', index: 0, input: 'Hello' ]

g:全局检索,不再检索到第一个时停止。

'hello appa'.match(/a/g);

返回:['a','a']

[常用转义字符]=>

\d:数字

\D:非数字

\w:(数字,字母,下划线)

\W:非(数字,字母,下划线)

\s:空格

\S:非空格

.(点):任意字符(包括空格)

\.:查找(点)字符

[常用量词]=>

n+:代表至少一个

n*:匹配多个

^n:开始为n的字符串

n$:结尾为n的字符串

?=n:匹配任何其后紧接指定字符串 n 的字符串。

?!n:匹配任何其后没有紧接指定字符串 n 的字符串。

n:x个n以上的匹配

n:x到y区间的匹配

[正则的常用方法]=>

test();

查找字符串中符合正则表达式的内容,返回true或false。

var reg=/\d/;

var test=reg.test.(str);

console.log(test);

返回:true。

match();

查找字符串中符合正则表达式的内容,返回数组,储存检索内容,检索失败则返回null。

var str='abcd456789';

var reg=/\D/;

var match=str.match(reg);

console.log(match);

返回:['a','b','c','d']

search();

查找字符串中符合正则表达式内容的位置,返回位置,检索失败则返回-1。

var str= 'jkldwajlf654';

var reg=/d/;

var search=str.search(reg);

console.log(search);

返回:3

exec();

查找字符串中匹配正则表达式的内容,返回数组,储存检索位置、检索内容和检索字符串,检索失败则返回null。

var str='avcd5566c';

var reg=/c/;

var exec=reg.exec(str);

console.log(exec);

返回:[ 'c', index: 2, input: 'avcd5566c' ]

replace();

查找字符串中匹配正则表达式的内容,并替换成指定字符,检索失败则返回原字符。

var str='hello world';

var reg=/world/;

var replace=str.replace(reg,'javascript');

console.log(replace);

返回:hello javascript

[常用的正则表达式]=>

手机号码验证=>

/^1[3458][0-9]\d$/;

首位为1,第二位为3、4、5、8,长度等于11。

邮政编码验证=>

/^[1-9]\d$/;

首位不能为0,且只能5位字符。

身份证号码=>

十五位:

密码验证=>

/^(\w)$/;

6至12位,包含数字、字母、下划线

匹配中文=>

/^[\u4E00-\u9FA5]+$/;

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G0TJMY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券