xiao

.............

正则表达式

作用:

   替换文本,提取字符串,有效性验证

 

语法:

一个正常的正则表达式的语法:/正则表达式主体/修饰符

 

RegExp方法:

search()     用于检索字符串中指定的子字符串,或检索与RegExp相匹配的子字符串并返回子串的起始2位置。

replace()    用于字符串中一些字符替换另一些字符,或替换一个与正则表达式相匹配的子串。

match()      方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

test()          方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

exec()        方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

 

创建方式:

  var newregexp = new RegExp("表达式的式子","g或i或gi或m,即是否全局匹配");
//或者: var newregexp = /表达式/gi

 

常见的标识符:

1.元字符:

\d  查找数字。
\s  查找空白字符。
\b  匹配单词边界。
\uxxxx  查找以十六进制数 xxxx 规定的 Unicode 字符。
\n 查找换行符
\w 查找单词字符数字、字母、下划线
. 任意字符

*实例:'00\d'可以匹配'007',但无法匹配'00A'。'\d\d\d'可以匹配'010'。'\w\w\d'可以匹配'py3'。'py.'可以匹配'pyc''pyo''py!'

2.方括号

[abc]   查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。 [0-9] 查找任何从 0 至 9 的数字。
[a-z]   查找任何从小写 a 到小写 z 的字符。
[A-z]   查找任何从大写 A 到小写 z 的字符。
(x|y) 查找任何以 | 分隔的选项。

 

3.量词

n+  匹配任何包含至少一个 n 的字符串。
n*  匹配任何包含零个或多个 n 的字符串。
n?  匹配任何包含零个或一个 n 的字符串。

 

() [] {}的区别:

() :提取匹配的字符串。有几个()就有几个相应的匹配字符串。

     例:(\s*)表示连续空格的字符串。

 

[]:定义匹配的字符范围

 

{}:表示匹配的长度

  例: \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。

 

综合:[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

 

4.^的用法:

    限定开头:比如 /^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A

    表示否定:[^a]表示“匹配除了a的任意字符”。

 

 

 

实例:

1.

^1[3|4|5|8][0-9]\d{4,8}$ 
^1代表以1开头,现在中国的手机号没有是其它开头的,以后不一定啊 
[3|4|5|8] 紧跟上面的1后面,可以是3或4或5或8的一个数字,如果以后出现190开始的手机号码了,就需要如下[3|4|5|8|9] 
[0-9]表示0-9中间的任何数字,可以是0或9 
\d{4,8} 这个\d跟[0-9]意思一样,都是0-9中间的数字。{4,8}表示匹配前面的最低4位数字最高8位数字。这里为什么不是直接的8呢,因为手机号码归属地查询的时候,根据前7位就可以知道具体的地址了,后面的4位没有影响的。

 

2. ^0\d{2,3}-\d{7,8}$

主要意思是匹配一个0开头后跟2到3位的数字加个 - 再跟上 7到8位的数字;
看起来应该是验证电话号码的正则;
^0 匹配输入字符串的开始位置,以0开始;
\d 匹配一个数字字符;
{2,3} 表示2到3位;
- 固定字符;
$ 匹配输入字符串的结束位置;

 

 

3.限制第一位3或8,第二位0-9

/[38][0-9]/.test('12')  //false
/[38][0-9]/.test('39')  //true

手机号验证:

/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/


文件路径校验:

只能以‘//’开头,‘/’结尾。‘///’开头,‘//’结尾也不可以;
/^\/\/[^\/]+.+[^\/]+\/{1}$/.test('//所得税ddreweyyy////wr/uytutyus所得税/')

  判断字符串是否为工号:

   //工号格式:['SMD','SVR','SDT','ST1','STC']

   /^[s|S]+[m|M|v|V|d|D|t|T]+[d|D|r|R|t|T|1|c|C]/.test('sdtd')

 判断链接是否为图片链接:

  /.(png|jpg|jpeg|gif)$/g.test(path)

 

只能包含特定的符号:

例:只能包含数字,小数点,英文逗号:

   /^[\d.,]+$/.test('34.43,4')

posted @ 2019-07-12 13:52  蓝色风暴003  阅读(336)  评论(0编辑  收藏  举报