【问题标题】:How do I convert this PHP regex to Javascript?如何将此 PHP 正则表达式转换为 Javascript?
【发布时间】:2013-06-06 11:49:57
【问题描述】:

我尝试转换这个:

$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.1a1.,但 javascript 正则表达式不会。

【问题讨论】:

  • 您是否想巧妙地处理负面预测?
  • 可能。我正在尝试获取一个只有数字和点且不能以点结尾的字符串。

标签: php javascript regex


【解决方案1】:

您的 PHP 正则表达式可以更好地编写如下,它与相同的语言匹配,但更易于阅读并且不需要使用否定的后视:

$regex = "/^\d+(\.\d+)*$/"

直接将其翻译成 Javascript 正则表达式也很容易:

var regex = /^\d+(\.\d+)*$/;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多