正则表达式

   正则表达式对象语法参数有以下部分:    

_________________________________________________________________

参数部分|描述

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

pattern|必需的。要使用的正则表达式模式,例如使用替换方法replace

|时,就是要替换的文本。

|语法1,用"/"字符分隔模式。

|语法2,用引号将模式引起来。

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

switch|可选项。语法2要用引号将switch引起来。可选的开

|关选项有:

|i(忽略大小写)

|g(全文查找出现的所有pattern)

|gi(全文查找、忽略大小写)

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

语法1当预先知道查找字符串时用

语法2当查找字符串经常变动或不知道时用,比如由用户输入得到的字符串。

在使用前pattern参数被编译为内部格式。

对语法1来说,pattern在该脚本被装载时被编译。

对语法2来说,pattern在使用前,或调用compile方法时被编译。

正则表达式的语法表:

字符|描述

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

\|标记下一个字符是特殊字符或文字。例如,"n"和字符"n"匹配。

|"\n"则和换行字符匹配。序列"\\"和"\"匹配,而"\("则

|和"("匹配。

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

^|匹配输入的开头。

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

$|匹配输入的末尾。

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

*|匹配前面的子表达式零或多次。例如,"zo*"与"z"或"zoo"匹配。等价于{0,}

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

+|匹配前面的子表达式一次或多次。例如,"zo+"与"zoo"匹配,但和"z"

|不匹配。

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

?|匹配前一个字符零或一次。例如,"a?ve?"和"never"中的"ve"匹

|配。

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

.|匹配除换行字符外的任何单个字符。

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

(pat-|匹配pattern并记住该匹配。匹配上的子字符串,可以使用Item

tern)|[0]...[n],来从生成的Matches集合中取回。要匹配圆括号字

|符(),则需使用"\("或"\)"。

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

x|y|匹配x或y。例如,"z|food"和"z"或"food"匹配。"(z|f)

|ood"匹配"zoo"或"food"。

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

{n}|n是非负整数。共匹配n次。例如,"o{2}"和"Bob"中的"o"不匹

|配,但和"foooood"中的前两个o匹配。

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

{n,}|n是一个非负整数。至少匹配n次。例如,"o{2,}"和"Bob"中

|的"o"不匹配,但和"foooood"中的所有o匹配。"o{1,}"

|与"o+"等效。"o{0,}"和"o*"等效。

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

{n,m}|m和n是非负整数。至少匹配n次而至多匹配m次。例如,"o

|{1,3}"和"fooooood"中的前三个o匹配。"o{0,1}"和"o?"等

|效。

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

[xyz]|字符集合。匹配括号内的任一字符。例如,"[abc]"和"plain"中

|的"a"匹配。

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

[^xyz]|否定字符集合。匹配非括号内的任何字符。例如,"[^abc]"

|和"plain"中的"p"匹配。

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

[a-z]|字符范围。和指定范围内的任一字符匹配。例如,"[a-z]"匹配"a"

|到"z"范围内的任一小写的字母表字符。

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

[^m-z]|否定字符范围。匹配不在指定范围内的任何字符。例如,"[m-z]"匹配不

|在"m"到"z"范围内的任何字符。

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

\b|匹配字的边界,也就是说,在字和空格之间的位置。例如,"er\b"

|和"never"中的"er"匹配,但和"verb"中的"er"不匹配。

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

\B|匹配非字边界。"ea*r\B"和"neverearly"中的"ear"匹配。

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

\d|匹配数字字符。等价于[0-9]。

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

\D|匹配非数字字符。等价于[^0-9]。

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

\f|匹配换页字符。

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

\n|匹配换行字符。

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

\r|匹配回车符字符。

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

\s|匹配任何空白,包括空格、制表、换页等。与"[\f\n\r\t\v]"等效。

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

\S|匹配任何非空白字符。与"[^\f\n\r\t\v]"等效。

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

\t|匹配制表字符。

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

\v|匹配垂直制表符。

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

\w|匹配包括下划线在内的任何字字符。与"[A-Za-z0-9_]"等效。

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

\W|匹配任何非字字符。与"[^A-Za-z0-9_]"等效。

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

\num|匹配num,其中num是一个正整数。返回记住的匹配的引用。例

|如,"(.)\1"匹配两个连续的同一字符。

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

\n|匹配n,其中n是八进制换码值。八进制换码值必须是1、2、或3位

|长。例如,"\11"和"\011"都匹配制表字符。"\0011"和"\001"

|&"1"是等效的。八进制换码值必须不超过256。如果超过了,则只有

|前两位组成表达式。允许在正则表达式中使用ASCII码。

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

\xn|匹配n,其中n是十六进制换码值。十六进制换码值必须正好是两位

|长。例如,"\x41"与"A"匹配。"\x041"和"\x04"&"1"是等效

|的。允许在正则表达式中使用ASCII码。

常用正则表达式

1。^\d+$  //匹配非负整数(正整数+0)

2。^[0-9]*[1-9][0-9]*$  //匹配正整数

3。^((-\d+)|(0+))$  //匹配非正整数(负整数+0)

4。^-[0-9]*[1-9][0-9]*$  //匹配负整数

5。^-?\d+$    //匹配整数

6。^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数+0)

7。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数

8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数+0)

9。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数

10。^(-?\d+)(\.\d+)?$  //匹配浮点数

11。^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

12。^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

13。^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

14。^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

15。^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址

17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url

18。匹配中文字符的正则表达式:[\u4e00-\u9fa5]

19。匹配双字节字符(包括汉字在内):[^\x00-\xff]

20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){returnthis.replace([^\x00-\xff]/g,"aa").length;}

21。匹配空行的正则表达式:\n[\s|]*\r

22。匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*)\/>/

23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)

正则表达式用例

*1、^\S+[a-zA-Z]$不能为空不能有空格只能是英文字母

*2、\S{6,}不能为空六位以上

*3、^\d+$不能有空格不能非数字

*4、(.*)(\.jpg|\.bmp)$只能是jpg和bmp格式

*5、^\d{4}\-\d{1,2}-\d{1,2}$只能是2004-10-22格式

*6、^0$至少选一项

*7、^0{2,}$至少选两项

*8、^[\s|\S]{20,}$不能为空二十字以上

*9、^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$邮件

*10、\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*输入多个地址用逗号或空格分隔邮件

*11、^(\([0-9]+\))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)87341628

*12、^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+(\,[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+)*$

*只能是字母、数字、下划线;必须有@和.同时格式要规范邮件

*13^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$上面表达式也可以写成这样子,更精练。

14^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$

相关推荐