我现在正在解决好奇的问题。我正在使用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));
}
为了让您更深入了解我有一个类.phoneNumber
的输入类型文本,然后我有jquery函数观看keyup事件,它看起来像这样
$('.phoneNumber').on('keyup', function() {
if (isPhoneNumberValid($(this).val())) {
console.log('is valid');
} else {
console.log( 'invalid');
}
});
您已经在上面看到过的其他功能。我也尝试在String()
中包装值。
我试图澄清为什么在线环境中的实例没有用,因为我知道这段代码在那里工作,正如我之前所说的那样。问题更多的是针对什么可能使它走这条路,因为完全相同的副本在codepen中起作用,但在我的项目中不起作用。
答案 0 :(得分:0)
问题在于拿铁模板引擎。它需要
<script n:syntax="double"></script>
工作。