JavaScript正则表达式19例(2)

(……续例1)

例2:匹配成对的HTML标记
 

  
  
  
  
  1. void function reg_02() //匹配成对的HTML标记  
  2. {  
  3.     var s1 = "<body bgcolor=\"#FFFFFF\">Mengliao</body>",  
  4.         s2 = "<h3 class=\"s1\" align=\"center\">Bosun Network</h3>",  
  5.         s3 = "<div>梦辽软件</DIV>",  
  6.         s4 = "<div>Baiyu</span>";  
  7.     var r = /^<([a-z]+[a-z0-9]*).*>.*<\/\1>$/ig;  
  8.     for (i = 1; i <= 4; i++)  
  9.     {  
  10.         t = "alert(s" + i + ".match(r));";  
  11.         eval(t);  
  12.     }  

行7:这是ECMAScript另外一种实例化正则表达式的方法,即使用两个/符号作为开始和结束,igm参数放在最后。
这个例子要求匹配成对的HTML标记,既然是成对,一定要在匹配前半个HTML标记后,将其保存,否则无法判断后半个标记是否与前半个标记一样,这需要使用正则表达式的组。
^符号从行首开始,<符号和>符号匹配HTML标记的尖括号,就是<>字符本身。
()符号表示将其中匹配的内容定义为一个组,其名称为1
[a-z]符号表示一个集合,由小写字母构成,当然,由于使用了开关i,所以大小写将不再敏感。
+符号表示匹配一次或多次,即至少需要一次。
同样[a-z0-9]符号表示由小写字母和数字构成的集合;*符号表示匹配0次或多次,即可以没有此部分。
.符号表示任意字符。
\/符号表示转义字符,即HTML结束标记中的/字符。
\1符号表示引用前面匹配的组1,当然,前面用()符号匹配的只有组1,如果有多个可以指定\2\3等,最多指定9个。
$符号表示匹配至行尾。
开关ig与例1是一样的。

运行结果:除了最后一个,其余都是可以匹配的。

(未完待续……)

你可能感兴趣的:(JavaScript,正则表达式,职场,ECMAScript,休闲)