时间: 2021-07-31 作者:daque
正则表白式(regular expression)东西包括一个正则表白式形式(pattern)。它具备用正则表白式形式去配合或包办一个串(string)中一定字符(或字符汇合)的属性(properties)和本领(methods)。 要为一个独立的正则表白式增添属性,不妨运用正则表白式结构因变量(constructor function),不管何时被挪用的预树立的正则表白式具有静态的属性(the predefined regexp object has static properties that are set whenever any regular expression is used, 我不领会我翻得对不对,将原文列出,请自行翻译)。
创造: 一个文本方法或正则表白式结构因变量 文本方法: /pattern/flags 正则表白式结构因变量: new regexp("pattern"[,"flags"]);
参数证明: pattern -- 一个正则表白式文本 flags -- 即使生存,将是以次值: g: 全部配合 i: 忽视巨细写 gi: 之上拉拢
[提防] 文本方法的参数不必引号,而在用结构因变量时的参数须要引号。如:/ab+c/i new regexp("ab+c","i")是实行一律的功效。在结构因变量中,少许特出字符须要举行转意(在特出字符前加"\")。如:re = new regexp("\\w+")
正则表白式中的特出字符
字符
含意
\
做为转意,即常常在"\"反面的字符不按从来意旨证明,如/b/配合字符"b",当b前方加了反斜杆后/\b/,转意为配合一个单词的边境。 -或- 对正则表白式功效字符的恢复,如"*"配合它前方元字符0次或屡次,/a*/将配合a,aa,aaa,加了"\"后,/a\*/将只配合"a*"。
^
配合一个输出或一条龙的发端,/^a/配合"an a",而不配合"an a"
$
配合一个输出或一条龙的结果,/a$/配合"an a",而不配合"an a"
*
配合前方元字符0次或屡次,/ba*/将配合b,ba,baa,baaa
+
配合前方元字符1次或屡次,/ba*/将配合ba,baa,baaa
?
配合前方元字符0次或1次,/ba*/将配合b,ba
(x)
配合x生存x在名为$1...$9的变量中
x|y
配合x或y
{n}
透彻配合n次
{n,}
配合n次之上
{n,m}
配合n-m次
[xyz]
字符集(character set),配合这个汇合中的任逐一个字符(或元字符)
[^xyz]
不配合这个汇合中的任何一个字符
[\b]
配合一个退格符
\b
配合一个单词的边境
\b
配合一个单词的非边境
\cx
这边,x是一个遏制符,/\cm/配合ctrl-m
\d
配合一个篇幅字符,/\d/ = /[0-9]/
\d
配合一个非篇幅字符,/\d/ = /[^0-9]/
\n
配合一个换行符
\r
配合一个回车符
\s
配合一个空缺字符,囊括\n,\r,\f,\t,\v等
\s
配合一个非空缺字符,即是/[^\n\f\r\t\v]/
\t
配合一个构图符
\v
配合一个重直构图符
\w
配合一个不妨构成单词的字符(alphanumeric,这是我的直译,含数字),囊括下划线,如[\w]配合"$5.98"中的5,即是[a-za-z0-9]
\w
配合一个不不妨构成单词的字符,如[\w]配合"$5.98"中的$,即是[^a-za-z0-9]。
说了这么多了,咱们来看少许正则表白式的本质运用的例子:
e-mail地方考证: function test_email(stremail) { var myreg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/; if(myreg.test(stremail)) return true; return false; } html代码的樊篱 function mask_htmlcode(strinput) { var myreg = /<(\w+)>/; return strinput.replace(myreg, "<$1>"); }