(……续例6)

例7:择一匹配

  1. void function reg_07()  
  2. {  
  3.     var s1 = "0",   
  4.         s2 = "0.23",  
  5.         s3 = "100",  
  6.         s4 = "100.01",  
  7.         s5 = "9.9",  
  8.         s6 = "99.9",  
  9.         s7 = "99.",  
  10.         s8 = "00.1",  
  11.         s9 = "05",  
  12.         s10 = "100.00",  
  13.         s11 = "100.",  
  14.         s12 = "+100.000";  
  15.     var r = /^\+?((100(.0+)?)|([1-9]?[0-9])(\.\d+)?)$/g; //匹配0到100的数  
  16.     for (i = 1; i <= 12; i++)  
  17.     {  
  18.         t = "alert(s" + i + ".match(r));" 
  19.         eval(t);  
  20.     }  

这是一个匹配0到100数字的简单版本。
(.0+)?符号中的括号表示.0+是一个整体,后面的?符号表示该整体可以出现0次或1次,即100后面要么什么都没有,要么有小数点的同时还必须有1个或多个0。
同样(\.\d+)?也是一样的道理,即如果有小数点则后面必须有数字。
中间的|符号表示必选其中之一,即要么包含三位整数,要么包含1位或两位整数。
这其中,()符号起到了分组的作用,与四则运算中的括号是类似的。
运行结果:s1、s2、s3、s5、s6、s10、s12是可以匹配的。

(未完待续……)