我尝试转换这个:
$regex = "/^[0-9]+[0-9\.]*(?<!\.)$/"
所有这些,但没有一个是正确的:
var regex = /^(?!\.$)[0-9]+[0-9\.]*/;
var regex = /^(?!.*\.$)[0-9]+[0-9\.]*/;
var regex = /^[0-9]+[0-9\.]*(?!\.$)/;
PHP正则表达式正确拒绝1.1a
和1.
,但javascript正则表达式没有。
答案 0 :(得分:6)
您的PHP Regex可能更好地编写如下,它匹配相同的语言,但更容易阅读,不需要使用负面的后视:
$regex = "/^\d+(\.\d+)*$/"
将其直接翻译为Javascript正则表达式也很容易:
var regex = /^\d+(\.\d+)*$/;