JavaScript RegExp测试返回错误的值

时间:2017-12-28 09:30:33

标签: javascript regex testing

我现在正在解决好奇的问题。我正在使用regexp测试一个字符串,它返回false,尽管它应该返回true。我在javascript中实现它。我有这个功能

function isPhoneNumberValid(phoneNumber) {
  return /^\+\d{12}$/.test(phoneNumber);
}

phoneNumber是一个变量,格式为+和12个数字(例如+421123123123)。我玩过不同版本的正则表达式,如/^\+[0-9]{12}$/

根据像https://www.regextester.com/21这样的网站,我的正则表达式应该适用于我想要的格式,但它仍然会返回false。当我尝试测试这个正则表达式/^\+[0-9]/时,只有+3被写入时才返回true,我猜问题是数字计数?

函数中收到的参数phoneNumber是正确的,所以我不认为错误存在。也没有修饰符的组合有帮助。

以下是此功能的日志

function isPhoneNumberValid(phoneNumber) {
    console.log('ph:'+phoneNumber);
    console.log(/^\+\d{12}$/.test(phoneNumber));
}

enter image description here

为了让您更深入了解我有一个类.phoneNumber的输入类型文本,然后我有jquery函数观看keyup事件,它看起来像这样

$('.phoneNumber').on('keyup', function() {
    if (isPhoneNumberValid($(this).val())) {
        console.log('is valid');
    } else {
        console.log( 'invalid');
    }
});

您已经在上面看到过的其他功能。我也尝试在String()中包装值。

我试图澄清为什么在线环境中的实例没有用,因为我知道这段代码在那里工作,正如我之前所说的那样。问题更多的是针对什么可能使它走这条路,因为完全相同的副本在codepen中起作用,但在我的项目中不起作用。

1 个答案:

答案 0 :(得分:0)

问题在于拿铁模板引擎。它需要

<script n:syntax="double"></script>

工作。