错误很简单。在JS中,我尝试类似于PHP中的preg_match。我找到了匹配功能。我使用此函数将值与字符串元素进行比较。如果发现返回true,否则返回false。
我尝试过
var sim_action = $(this);
if(sim_action.data("phone").toString().match("/^(+34|0034|34)+([67]){8})$/")){
但是返回此错误。
无效的正则表达式:// ^(+ 34 | 0034 | 34)+([67]){8})$ //:无 重复
问题是。如何在JS match函数中添加此字符串?
答案 0 :(得分:0)
您需要使用反斜杠转义 <div
v-for="(task, index) in tasks"
:key="index"
:class="{'is-complete': task.complete}"
>
字符:+
。您也有一个没有匹配的开放支架的封闭支架。
答案 1 :(得分:0)
+
和()
是元字符,如果要引用文字,则需要使用\
对其进行转义。这是regex101 demo,突出显示了正则表达式的错误
关于正则表达式,来自维基百科,我认为西班牙电话号码的格式为+34(6|7)xxxxxxxx
您可以使用以下正则表达式:/^(\+34|0034|34)[67]\d{8}$/
如果您只想检查正则表达式是否通过,则可以使用regex.test(<stringToBeTested>)
const regex = /^(\+34|0034|34)[67]\d{8}$/
const phone = "+34712345673";
if (regex.test(phone))
console.log("Valid phone number")
const phoneNumbers = ["+34712345673", "0034612345673", "+34812345673"]
phoneNumbers.forEach(p => console.log(regex.test(p)))