知道这20个正则表达式,能让你少写1,000行代码

正则表达式,

一个十分古老而又强大的文本处理工具,

仅仅用一段非常简短

的表达式语句,

便能够快速实现一个非常复杂的业务逻辑。

熟练地掌握正则表达

式的话,能够使你的开发效率得到极大的提升。

 

正则表达式经常被用于字段或任意字符串的校验,

如下面这段校验基本日期

格式的

JavaScript

代码:

 

varreg

=

 /^

(

\\d

{

1,4

})(

-

|

\\/

)(

\\d

{

1,2

})

\\2

(

\\d

{

1,2

})

$/

;

 

var r 

=

fieldValue.match

(

reg

);

 

if

(

r

==

null

)

alert

(

'Date format error!'

);

 

下面是

技匠

整理的,在前端开发中经常使用到的

20

个正则表达式。

 

1 . 

校验密码强度

 

密码的强度必须是包含大小写字母和数字的组合,

不能使用特殊字符,

长度

8-10

之间。

 

^

(

?

=

.*\\d

)(

?

=

.*

[

a-z

])(

?

=

.*

[

A-Z

])

.

{

8,10

}

2. 

校验中文

 

字符串仅能是中文。

 

^

[

\\u4e00-\\u9fa5

]{

0,

}

3. 

由数字、

26

个英文字母或下划线组成的字符串

 

^\\w+$ 

4. 

校验

E-Mail 

地址

 

同密码一样,下面是

E-mail

地址合规性的正则检查语句。

 

[

\\w

!

#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*

@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

 

校验身份证号码

 

下面是身份证号码的正则校验。

15 

 

18

位。

 

15

位:

 

^

[

1-9

]

\\d

{

7

}((

0

\\d

)

|

(

1

[

0

-

2

]

))(([

0

|

1

|

2

]

\\d

)

|

3

[

0-1

])

\\d

{

3

}

18

位:

 

^

[

1-9

]

\\d

{

5

}[

1-9

]

\\d

{

3

}((

0

\\d

)

|

(

1

[

0

-

2

]

))(([

0

|

1

|

2

]

\\d

)

|

3

[

0-

1

])

\\d

{

3

}([

0-9

]

|

X

)

6. 

校验日期

 

yyyy-mm-dd

 

格式的日期校验,已考虑平闰年。

 

^

(

?:

(

?

!

0000

)[

0-9

]{

4

}

-

(

?:

(

?:0

[

1-9

]

|

1

[

0-2

])

-

(

?:0

[

1-9

]

|

1

[

0-9

]

|

2

[

0-8

])

|

(

?:0

[

13-9

]

|

1

[

0-2

])

-

(

?:29

|

30

)

|

(

?:0

[

13578

]

|

1

[

02

])

-3

1

)

|

(

?:

[

0-9

]{

2

}(

?:0

[

48

]

|

[

2468

][

048

]

|

[

13579

][

26

])

|

(

?:0

[

48

]

|

[

2468

][

048

]

|

[

13579

][

26

])

00

)

-02-29

)

7. 

校验金额

 

金额校验,精确到

2

位小数。

 

^

[

0-9

]

+

(

.

[

0-9

]{

2

})

?$ 

8. 

校验手机号

 

下面是国内

 

13

15

18

开头的手机号正则表达式。(可根据目前国内收

集号扩展前两位开头号码)

 

^

(

13

[

0-9

]

|

14

[

5

|

7

]

|

15

[

0

|

1

|

2

|

3

|

5

|

6

|

7

|

8

|

9

]

|

18

[

0

|

1

|

2

|

3

|

5

|

6

|

7

|

8

|

9

])

\\d

{

8

}

9. 

判断

IE

的版本

 

IE

目前还没被完全取代,很多页面还是需要做版本兼容,下面是

IE

版本检

查的表达式。

 

^.*MSIE 

[

5-8

](

?:\\.

[

0-9

]

+

)

?

(

?

!

.*Trident\\/

[

5-9

]

\\.0

)

.*$ 

10. 

校验

IP-v4

地址

 

IP4 

正则语句。

 

\\b

(

?:

(

?:25

[

0-5

]

|

2

[

0-4

][

0-9

]

|

[

01

]

?

[

0-9

][

0-9

]

?

)

\\.

){

3

}(

?:25

[

0-5

]

|

2

[

0-4

][

0-9

]

|

[

01

]

?

[

0-9

][

0-9

]

?

)

\\b 

11. 

校验

IP-v6

地址

 

IP6 

正则语句。

 

((

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

7

,

7

}[

0

-

9a

-

fA

-

F]{

1

,

4

}

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

7

}

:|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

6

}

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

5

}

(

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

)

{

1

,

2

}

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

4

}

(

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

)

{

1

,

3

}

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

3

}

(

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

)

{

1

,

4

}

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

2

}

(

:

[

0

-

9a

-

f

A

-

F]{

1

,

4

}

)

{

1

,

5

}

|

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

((

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

)

{

1

,

6

}

)

|:

((

:

[

0

-

9a

-

fA

-

F]{

1

,

4

}

)

{

1

,

7

}

|:

)

|

fe80

:

(

:

[

0

-

9a

-

fA

-

F]{

0

,

4

}

)

{

0

,

4

}

%

[

0

-

9a

-

zA

-

Z]{

1

,

}

|::

(

ffff

(

:

0

{

1

,

4

}

)

{

0

,

1

}

:

)

{

0

,

1

}

((

25

[

0

-

5

]

|

(

2

[

0

-

4

]

|

1

{

0

,

1

}[

0

-

9

]

)

{

0

,

1

}[

0

-

9

]

)

\\.

)

{

3

,

3

}

(

25

[

0

-

5

]

|

(

2

[

0

-

4

]

|

1

{

0

,

1

}[

0

-

9

]

)

{

0

,

1

}[

0

-

9

]

)

|

(

[

0

-

9a

-

fA

-

F]{

1

,

4

}

:

)

{

1

,

4

}

:

((

25

[

0

-

5

]

|

(

2

[

0

-

4

]

|

1

{

0

,

1

}[

0

-

9

]

)

{

0

,

1

}[

0

-

9

]

)

\\.

)

{

3

,

3

}

(

25

[

0

-

5

]

|

(

2

[

0

-

4

]

|

1

{

0

,

1

}[

0

-

9

]

)

{

0

,

1

}[

0

-

9

]

))

 

12. 

检查

URL

的前缀

 

应用开发中很多时候需要区分请求是

HTTPS

还是

HTTP

,通过下面的表达

式可以取出一个

url

的前缀然后再逻辑判断。

 

if

(

!

s.match

(

/^

[

a-zA-Z

]

+:\\/\\//

))

 

{

 

    s 

=

'http://'

 + s

;

 

}

 

13. 

提取

URL

链接

 

下面的这个表达式可以筛选出一段文本中的

URL

 

^

(

f

|

ht

){

1

}(

tp

|

tps

)

:\\/\\/

([

\\w-

]

+\\.

)

+

[

\\w-

]

+

(

\\/

[

\\w- ./?

%

&=

]

*

)

 

 

 

提取

html

中的超链接。

 

(

<

a\\s*

(

?

!

.*\\brel

=

)[

^

>

]

*

)(

href

=

"https?:\\/\\/)

((

?!

(

?:

(

?:

w

ww\\.

)

?

'.implode

(

'

|

(

?:

www\\.

)

?

'

,

 

$follow_list

)

.'

))

[^"

]

+

)

"

((

?

!

.*\\brel

=

)[

^

>

]

*

)(

?:

[

^

>

]

*

)

>

 

18. 

查找

CSS

属性

 

通过下面的表达式,可以搜索到相匹配的

CSS

属性。

 

^\\s*

[

a-zA-Z\\-

]

+\\s*

[

:

]{

1

}

\\s

[

a-zA-Z0-9\\s.

#]+[;]{1}

 

19. 

抽取注释

 

如果你需要移除

HMTL

中的注释,可以使用如下的表达式。

 

<!

--

(

.*?

)

--

>

 

20. 

匹配

HTML

标签

 

通过下面的表达式可以匹配出

HTML

中的标签属性。

 

 

<

\\/?\\w+

((

\\s+\\w+

(

\\s*

=

\\s*

(

?:

".*?"

|

'.*?'

|

[

\\^'"

>

\\s

]

+

))

?

)

+\\s*

|

\\s*

)

\\/?

>

 

posted @ 2016-11-22 15:25  汪星人  阅读(238)  评论(0编辑  收藏  举报