Javascript Regex允许使用以下符号
我试图做一个简单的电话号码验证,为此我很难用正则表达式进行验证。我希望允许用户输入以下内容:Javascript Regex允许使用以下符号,javascript,regex,Javascript,Regex,我试图做一个简单的电话号码验证,为此我很难用正则表达式进行验证。我希望允许用户输入以下内容: 任何数字 - + ( ) 空格/空格 目前我有这样的想法:/[0-9-+()\s]*/im,但它似乎不起作用。有人能帮我吗?我没有针对任何特定的国家,因此我不想遵循任何严格的格式。您需要以^字符开始,以强制它从开始匹配,并以$字符开始,以强制它匹配到结束。否则,它将匹配它所能匹配的,并忽略除此之外不匹配的任何内容。你也可以更直接地使用它。例如,+字符可能只允许作为第一个字符,或者您可能希望强制至少有7个
空格
/空格目前我有这样的想法:
/[0-9-+()\s]*/im
,但它似乎不起作用。有人能帮我吗?我没有针对任何特定的国家,因此我不想遵循任何严格的格式。您需要以^
字符开始,以强制它从开始匹配,并以$
字符开始,以强制它匹配到结束。否则,它将匹配它所能匹配的,并忽略除此之外不匹配的任何内容。你也可以更直接地使用它。例如,+
字符可能只允许作为第一个字符,或者您可能希望强制至少有7个字符。下面的示例代码显示了其中的一些
//r1通过添加^and$
常数r1=/^[-+0-9()\s]*$/
// = =
//r2添加的规则如“+”只能出现在开始处
//并且必须至少有7位数字
常数r2=/^\+?[-0-9()\s]{7,}$/
// === ====
常数测试=[
"123 456-7890",
"789",
"+4 9084342",
“你好”,
"123+457+432",
"1234567!"
]
for(const num of tests)console.log(`r1:${r1.test(num)}-${num}`)
console.log(“----”)
for(const num of tests)console.log(`r2:${r2.test(num)}-${num}`)
Escape-
,方法是在反斜杠前面加上前缀或将其移到末尾。这是否回答了您的问题?许多字符需要转义。\+-()@AlwaysLearning,不,它针对一个国家的特定格式。我尝试转义所有字符,但仍然没有成功/[0-9\-\+\(\)\s]*/im
@QuentinUK无需转义括号表达式中的+
或括号。另外,如果OP使用的是某种验证,比如angular,那么regex不应该包含在^
或$
锚中。OP必须显示代码。在字符类中不需要转义+()
,如果它位于第一个或最后一个位置,则不需要转义-
<代码>[-0-9+()\s]可读性更强。你说得对@Toto我已经调整了答案,因为它更容易阅读