随笔-159  评论-114  文章-7  trackbacks-0

^

输入或行的起始部分。

^T 匹配"This good earth"中的"T",但与"Uncle Tom's Cabin"中的"T"不匹配

$

输入或行的结尾部分。

h$ 匹配"teach"中的"h",但与"teacher"中的"h"不匹配

*

0 个或多个前置字符。

um* 匹配"rum"中的"um"、"yummy"中的"umm"和"huge"中的"u"

+

1 个或多个前置字符。

um+ 匹配"rum"中的"um"和"yummy"中的"umm",但在"huge"中没有任何匹配项

?

前置字符最多出现一次(即,指示前置字符是可选的)。

st?on 匹配"Johnson"中的"son"和"Johnston"中的"ston",但在"Appleton"或"tension"中没有任何匹配项

.

除换行符外的任何单字符。

.an 匹配短语"bran muffins can be tasty"中的"ran"和"can"

x|y

x 或 y。

FF0000|0000FF 匹配 bgcolor="#FF0000" 中的"FF0000"和 font color="#0000FF" 中的"0000FF"

{n}

恰好 n 个前置字符。

o{2} 匹配"loom"中的"oo"和"mooooo"中前两个"o",但在"money"中没有任何匹配项

{n,m}

至少 n 个、至多 m 个前置字符。

F{2,4} 匹配"#FF0000"中的"FF"和"#FFFFFF"中的前四个"F"

[abc]

用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如,[a-f] 等效于 [abcdef])。

[e-g] 匹配"bed"中的"e"、"folly"中的"f"和"guard"中的"g"

[^abc]

未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。

[^aeiou] 最初匹配"orange"中的"r"、"book"中的"b"和"eek!"中的"k"

\b

词边界(例如空格或回车符)。

\bb 匹配"book"中的"b",但在"goober"或"snob"中没有任何匹配项

\B

词边界之外的任何内容。

\Bb 匹配"goober"中的"b",但在"book"中没有任何匹配项

\d

任何数字字符。等效于 [0-9]。

\d 匹配"C3PO"中的"3"和"apartment 2G"中的"2"

\D

任何非数字字符。等效于 [^0-9]。

\D 匹配"900S"中的"S"和"Q45"中的"Q"

\f

换页符。

 

\n

换行符。

 

\r

回车符。

 

\s

任何单个空白字符,包括空格、制表符、换页符或换行符。

\sbook 匹配"blue book"中的"book",但在"notebook"中没有任何匹配项

\S

任何单个非空白字符。

\Sbook 匹配"notebook"中的"book",但在"blue book"中没有任何匹配项

\t

制表符。

 

\w

任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。

b\w* 匹配"the barking dog"中的"barking"和"the big black dog"中的"big"和"black"

\W

任何非字母数字字符。等效于 [^A-Za-z0-9_]。

\W 匹配"Jake&Mattie"中的"&"和"100%"中的"%"


<script>
    
    function testfn(str)
    
{
        var ex 
= "^\\w+$";
        var re 
= new RegExp(ex,"i");
        alert(re.test(str));
    }

</script>

<script>
testfn(
"dfda");
testfn(
"123");
testfn(
",");
testfn(
".");
testfn(
"123.3");
</script>

自己试验一下

实际应用,Email验证
<script>
    function testmail(str)
    
{
        var ex 
= "^\\w+@[\\w]+\\.+[a-z]{2,3}$";
        var re 
= new RegExp(ex,"i");
        alert(re.test(str));   
    }

</script>

<script>
testmail(
"aacom@fda.com");
</script>

注意.的转义处理,因为.本身在正则表达式中有含义,代表非换行的单个字符

而我们想要的是.的实际标点


<script>
    function spliturl(str)
    
{
        var ex 
= "\\w{3}\.\\w+\.\\w{2,3}\\.\\w{2,3}";
        var re 
= new RegExp(ex);
        var arr 
= re.exec(str);
        alert(arr[
0]);
    }

</script>

<script>
spliturl(
"www.itnow.com.cn");
</script>


 

<script>
    function spliturl(str)
    
{
        var ex 
= "(\\w{3})\.(\\w+)\.(\\w{2,3})\\.(\\w{2,3})";
        var re 
= new RegExp(ex);
        var arr 
= re.exec(str);
        alert(arr);
        alert(RegExp.$
1);
        alert(RegExp.$
2);
    }

</script>

<script>
spliturl(
"www.itnow.com.cn");
</script>


加了小括号就是定义了一个变量,可以使用,js中保存在RegExg.$1 ---- RegExg.$9中

posted on 2006-03-11 13:23 北国狼人的BloG 阅读(285) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: