javascript的正则表达式匹配

常用的正则表达式

匹配中文字符的正则表达式: [/u4e00-/u9fa5]
匹配双字节字符(包括汉字在内):[^/x00-/xff]
匹配空行的正则表达式:/n[/s| ]*/r
匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/
匹配首尾空格的正则表达式:(^/s*)|(/s*$)

匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?

 

3.1.2非打印字符
非打印字符也是普通字符,单独列出来便于参考。

非打印字符参考(有错大家矫正,JS手册都有)
/cx
匹配由x指明的控制字符。例如, /cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

/f
匹配一个换页符。等价于 /x0c 和 /cL。

/n
匹配一个换行符。等价于 /x0a 和 /cJ。

/r
匹配一个回车符。等价于 /x0d 和 /cM。

/s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ /f/n/r/t/v]。

/S
匹配任何非空白字符。等价于 [^ /f/n/r/t/v]。

/t
匹配一个制表符。等价于 /x09 和 /cI。

/v
匹配一个垂直制表符。等价于 /x0b 和 /cK。

Regex中可以使用非打印字符。/t会匹配一个tab字符(ASC||),/r 会匹配一个回车(0x0D),/n 会匹配一个换行符(0x0A)。应该注意的是:Windows使用/r/n表示一行的结束,而UNIX使用/n 。

同样,我们可以在Regex中使用16进制的ASCⅡ码或者ANSI标准码。在拉丁语中,版权符号的代码是0xA9,所以我们也可以这样来匹配版权符号 /xA9 。另外一个匹配tab的写法是:/x09 。但是注意,第一位的“0”必须去掉。


特殊字符
特殊字符也叫做元字符,保留字符(Metacharactor),在Regex中表示特殊的意义,大部分的意思在不同的上下文中的意义是不同的,这里只列出最普遍的意义。

特殊字符共有11个:
$
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '/n' 或 '/r'。要匹配 $ 字符本身,请使用 /$。

( )
标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 /( 和 /)。

*
匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 /*。

+
匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 /+。

.
匹配除换行符 /n之外的任何单字符。要匹配 .,请使用 /。

[
标记一个中括号表达式的开始。要匹配 [,请使用 /[。

?
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 /?。

/
将下一个字符标记为或特殊字符、或原义字符、或反向引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'/n' 匹配换行符。序列 '//' 匹配 "/",而 '/(' 则匹配 "("。

^
匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 /^。

{
标记限定符表达式的开始。要匹配 {,请使用 /{。

|
指明两项之间的一个选择。要匹配 |,请使用 /|。

在元字符前加 / 转义符,可以把特殊字符当作普通字符来使用。

比如:如要要匹配 1+1=2 ,正确的正则表达式应该为1/+1=2。否则, + 会被当作特殊字符对待。

除了特殊字符,所有的其他字符都不应该加 / 。因为 / 也是一个特殊字符。/ 和普通字符组合在一起也可以创造一种特殊的意义。比如 /d 表示匹配所有的数字。

作为程序员,单引号和双引号不是特殊字符会也许让我们感到很惊讶。但这是正确的。因为我们在编程的时候,编程语言会知道引号之间的哪些字符表示特殊意义,编译器在把字符串x传递给regex解释引擎之前,会把它们处理成regex。比如,在C#中,如果我们要匹配 1/+1=2 ,在程序中我们要这样写: “1//+1=2” ,C#编译器会把 “//” ,处理为一个“/” 。同样,如果要匹配 C:/Temp ,首先,正则表达式要这样写 C://Temp,然后在程序中我们应该这样写:“ C:temp”。
<!---->

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值