gpt4 book ai didi

JavaScript : RegExp pattern not picking up as valid Regular Expression

转载 作者:行者123 更新时间:2023-12-03 04:25:39 27 4
gpt4 key购买 nike

我正在尝试检查用户在前端提供的号码是否与我的正则表达式匹配,如下面的代码所示:

var patt = new RegExp("^((?:\+27|27)|0)(\d{9})\$");

if(!patt.test($('#phoneNumber').val())){
this.error = "Please enter a valid number.";
return;
}

但是,我在控制台中收到此错误:

SyntaxError: Invalid regular expression: /^((?:+27|27)|0)(d{9})$/:Nothing to repeat

我尝试了多种逃生方法,但没有成功。

有人可以帮忙,或者只是告诉我这方面的窍门吗?

提前致谢。

最佳答案

如果您从字符串创建正则表达式,您应该使用 \\ 而不是每个 \ (因为当您创建字符串时,单个反斜杠是转义字符,而双反斜杠是转义字符)反斜杠是一个简单的反斜杠)

同样,如果您尝试:console.log('\') vs console.log('\\'),对于第一个,您将得到以下错误:无效或意外的 token

这是完整的代码:

var patt = new RegExp('^((?:\\+27|27)|0)(\\d{9})$');

if(!patt.test($('#phoneNumber').val())){
this.error = "Please enter a valid number.";
return;
}

您可以通过以下方式获得相同的结果(请注意,这次您不是创建一个字符串,然后从该字符串创建一个正则表达式,而是直接创建一个正则表达式,因此您不需要在前面添加转义反斜杠每个反斜杠):

var patt = /^((?:\+27|27)|0)(\d{9})$/

关于JavaScript : RegExp pattern not picking up as valid Regular Expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741183/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com