求一正则表达式验证只能为数字(正负整数、正负小数都可以输入),小数点后只能为4位

解决方案 »

  1.   

    var i = /^-?\d+(\.\d{0,4})?$/;
    alert(i.test("-21342s342.34123"));
      

  2.   

    var i = /^-?([1-9]\d*|0)(\.\d{0,4})?$/; 
    alert(i.test("-021342s342.34123"));
      

  3.   

    字符 含意 
    \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。
     
    ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a" 
    $ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A" 
    * 匹配前面元字符0次或多次(任意多次),/a*/  将匹配零或多个 a,/ba*/将匹配b,ba,baa,baaa 
    + 匹配前面元字符1次或多次,/a+/  将匹配一或多个 a ,/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 匹配一个数字字符,等价于 [0-9] 
    \D 匹配一个非数字字符,等价于 [^0-9] 
    \n 匹配一个换行符 
    \r 匹配一个回车符 
    \s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 
    \S 匹配一个非空白字符,等价于 [^\n\f\r\t\v] 
    \t 匹配一个制表符 
    \v 匹配一个重直制表符 
    \w 数字、字母、下划线,等价于[a-zA-Z0-9_] 
    \W 非 \w ,等价于[^a-zA-Z0-9_] 
      

  4.   

    var i = /^-?([1-9]\d*|0)(\.\d{1,4})?$/; 
    alert(i.test("-021342s342.34123"));