求大神帮忙写一个只允许是百分数的js正则表达式(从0%至100%,中间数字允许两位小数)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求大神帮忙写一个只允许是百分数的js正则表达式(从0%至100%,中间数字允许两位小数)。相关的知识,希望对你有一定的参考价值。

例:24% 判断为true
24.56% 判断为true
增长率24.56% 判断为false

增长率为24.56%,还需继续努力 判断为true

参考技术A Js:/^\d+\.?\d0,2%$/
java :^\\d+\\.?\\d0,2%$本回答被提问者采纳

thinkphp自动验证,写验证规则用正则表达式,会出现问题,求大神解答!~

用此正则就可以验证
protected $_validate = array(
array('Fname', '/^\w2,$/' , '用户名格式错误' , 1 , 'regex' ,1),
);
写成这样就不行
array('Fname', '/^[a-z0-9\u4E00-\u9FFF]2,20$/' , '用户名格式错误' , 1 ,'regex', 1),
我下面的正则是正确的,在js里面可以生效

正确的写法应写为:

protected $_validate = array(

    array('Fname', '/^[a-z0-9\\x4e00-\\x9fa5]2,20$/u' , '用户名格式错误' , 1 , 'regex' ,1),

);

错误原因:

    可能与编码有关,固使用模式修正符u:

    u (PCRE_UTF8) 
    此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。 

    php匹配中文与js有所区别\\x后需加大括号,其中\\x表示十六进制数据.

其它原因:

  1.  接收的是GB2312的编码格式,如果是接收GB2312的汉字字母数字请替换上面的正则表达式为array('Fname', "/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/" , '用户名格式错误' , 1 , 'regex' ,1)

参考技术A js 的毕竟不是php的正则,/^[\x4e00-\x9fa5]2,20$/u ,你先本地测试下php能匹配不。。不能匹配就是匹配规则错误

以上是关于求大神帮忙写一个只允许是百分数的js正则表达式(从0%至100%,中间数字允许两位小数)。的主要内容,如果未能解决你的问题,请参考以下文章

求教js的大神,只允许输入11位数字并且这11位数字不能全部相同的正则表达式

js 用正则表达式验证只允许输入数字,或者是数字后两位小数点,如何写?

求 js 正则表示式 只能输入英文字母和数字

用javascript(js)写正则表达式.最小7位,大小写字母数字特殊字符至少包含两种的组合

求高手帮忙写一个参考文献的正则表达式,格斯如下

java正则表达式过滤特殊字符