Javascript 需要正则表达式来验证电话号码必须仅包含字符+;,-,*?和0-9

Javascript 需要正则表达式来验证电话号码必须仅包含字符+;,-,*?和0-9,javascript,regex,Javascript,Regex,希望你们都做得很好。我需要一个正则表达式,其中我需要验证以下条件: 电话号码必须仅包含字符+、-、*、?和0-9 只有主字符可以是+(只有一次,如果主字符的附加字符超过1,则应失败) 只有尾随字符可以是*。(只应出现一次,如果主字符的附加字符超过1*,则应失败) 在+和*之间,我可以有20个字符(允许为0-9,-、?) 我使用下面的表达式来验证前导(++)和尾随字符(*)。它需要展开以验证是否有多个相同的字符附加到前导字符和尾随字符 ^[0-9+].*[0-9*]$ 试试这个 ^\+?([

希望你们都做得很好。我需要一个正则表达式,其中我需要验证以下条件:

  • 电话号码必须仅包含字符+、-、*、?和0-9
  • 只有主字符可以是+(只有一次,如果主字符的附加字符超过1,则应失败)
  • 只有尾随字符可以是*。(只应出现一次,如果主字符的附加字符超过1*,则应失败)
  • +和*之间,我可以有20个字符(允许为0-9,-、?)
我使用下面的表达式来验证前导(++)和尾随字符(*)。它需要展开以验证是否有多个相同的字符附加到前导字符和尾随字符

^[0-9+].*[0-9*]$
试试这个

^\+?([-?0-9]{0,20})\*?
这将在前导字符(+)和尾随字符(*)的0和1之间匹配

它还会检查0-9,-然后呢?发生在0到20次之间

因此,这将匹配:

  • +23-4932-4234?3423*
  • 23-4932-4234?3423*
  • +23-4932-4234?3423
  • 23-4932-423423
  • 等等,

否则,请看一下

“我有下面的表达[…]它需要扩展”它在哪里?这个问题似乎根本不包括任何解决问题的尝试。请编辑问题以显示您尝试了什么,并显示您遇到的具体障碍。有关更多信息,请参阅。可选
+
*
之间最多20个字符。。。没有最低要求?只允许
+
*
吗?谢谢您的回复。我试过上面的表达。它与所有用例都匹配,即使是故障用例ex:+23-4932-4234?DDSFSDF34223*是,它将捕获“+23-4932-4234?”,如果您需要*,则移除?在*(?=捕获零或一)之后。或者将[^\D]添加到捕获组以排除任何其他非数字,如下所示<代码>^\+?([-?0-9]{0,20}[^\D])\*谢谢Ambro。我能够使用下面修改的表达式来实现这一点,该表达式符合我的要求(考虑尾随字符为0-9或*或?)。表达式:^\+?([-?0-9]{3,23}[^\D])?[-?0-9]+*?$@Karthik,没有问题。很高兴它让你走上了正确的道路。如果您正在努力使用正则表达式,我发现它非常有用。请勾选勾号,将此标记为已解决。谢谢