在javascript中强制输入电话号码的Regex

Regex for coercing input for phone number in javascript

本文关键字:电话号码 Regex 输入 javascript      更新时间:2023-09-26

我有一个法语格式的电话号码输入输入接受两种格式,所以我可以输入:

  1. 0699999999
  2. +33699999999

不检查数字的长度。

数据库中的表,字段是varchar 12,不过我可以有更短的输入。约束条件:输入只包含0到9之间的数字,只有在字符串开始时才接受可选的"+"号,而不是在之后。

目前我在Angular有一个指令,在那个指令中的核心是这样的表达:

var transformedInput = inputValue.replace(/[^0-9]/g, ''); 

我想要可选的前导'+'符号,如何实现?谢谢

您可以将加号设为可选:

if (/'+?'d*/.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}

主题是要检查的文本。''+将加号设为文字符号,问号将其设为可选符号。

如果你只是想看看是否有一个加号,请去掉问号。但如果这是你的目标,就不要使用正则表达式。那开销太大了。只需获取修剪字符串的第一个字符,然后检查加号。

将其更改为

var transformedInput = inputValue.replace(/[^0-9'+]/g, '').replace(/(.)'+/g, '$1'); 

注意-除非输入中已经有+,否则不会添加+


它的作用是

  1. 不要删除第一次替换时的+符号
  2. 删除第2个替换中前面有某个字符的每个+符号