JavaScript电话号码验证(拒绝使用字母字符的输入)

JavaScript电话号码验证(拒绝使用字母字符的输入),javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我正在创建一个简单的表单验证,它排除了任何包含字母的条目(基本上是a-z或a-z中的任何条目) 这是我目前正在使用的,但我的脚本只拒绝任何不是0-9的内容。这将拒绝我要验证的句点、括号和破折号 var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/; if(number != "" && !numericReg.test(number)) { return false; 我怎样才能只检查信件 另一种方法是只接受数

我正在创建一个简单的表单验证,它排除了任何包含字母的条目(基本上是a-z或a-z中的任何条目)

这是我目前正在使用的,但我的脚本只拒绝任何不是0-9的内容。这将拒绝我要验证的句点、括号和破折号

var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
    if(number != "" && !numericReg.test(number)) {
    return false;
我怎样才能只检查信件


另一种方法是只接受数字为0-9且包含以下字符的输入:“.”、“-”、“(“,”)”

两个正则表达式供您尝试。第一个匹配仅包含指定字符的字符串。第二个匹配不包含字母a-z或a-z的字符串:

var isPhoneChar = /^[-.() \d]+$/;
var isNonAlpha = /^[^a-z]+$/i;
请记住,
isNonAlpha
不会保护您免受伤害ṃȅɍǒǘṩ ȯẗḥḛṝ ḽêťśśś


<>国际电话拨号时,也可以考虑“<代码> x/COD>”,用于国际拨号。

< P>两个正则表达式供您尝试。第一个匹配仅包含指定字符的字符串。第二个匹配不包含字母a-z或a-z的字符串:

var isPhoneChar = /^[-.() \d]+$/;
var isNonAlpha = /^[^a-z]+$/i;
请记住,
isNonAlpha
不会保护您免受伤害ṃȅɍǒǘṩ ȯẗḥḛṝ ḽêťśśś


您可以考虑允许电话拨号键和<代码> +>代码>国际拨号。

< p>您可以一直使用它来直接拔出号码。< /P> 咖啡脚本:

console.log number.match ///

  # Match the start of the string.
  ^

  # Get the first 3 digits.
  \(?(?=\d{3})(\d{3})[).\-\s]*

  # Get the next 3 digits.
  (\d{3})[.\-\s]*

  # Get the last 4 digits
  (\d{4})

  # End of the number
  $

///
Javascript(或节点):

以下是我在CoffeeScript中运行的测试用例,以确保其工作正常:

exports '1234567890'
exports '123 456 7890'

exports '123.456.7890'
exports '123 456.7890'
exports '123.456 7890'
exports '123456.7890'
exports '123.4567890'
exports '123456. 7890'

exports '123-456-7890'
exports '123 456-7890'
exports '123-456 7890'
exports '123456-7890'
exports '123-4567890'

exports '(123)456-7890'
exports '(123)4567890'
exports '(123) 4567890'
exports '(123)456 7890'
exports '(123) 456 7890'
exports '(123) 4567890'
以及它们的产出:

1234567890
[ '1234567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '1234567890' ]
123 456 7890
[ '123 456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456 7890' ]
123.456.7890
[ '123.456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.456.7890' ]
123 456.7890
[ '123 456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456.7890' ]
123.456 7890
[ '123.456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.456 7890' ]
123456.7890
[ '123456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456.7890' ]
123.4567890
[ '123.4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.4567890' ]
123456. 7890
[ '123456. 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456. 7890' ]
123-456-7890
[ '123-456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-456-7890' ]
123 456-7890
[ '123 456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456-7890' ]
123-456 7890
[ '123-456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-456 7890' ]
123456-7890
[ '123456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456-7890' ]
123-4567890
[ '123-4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-4567890' ]
(123)456-7890
[ '(123)456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)456-7890' ]
(123)4567890
[ '(123)4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)4567890' ]
(123) 4567890
[ '(123) 4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 4567890' ]
(123)456 7890
[ '(123)456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)456 7890' ]
(123) 456 7890
[ '(123) 456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 456 7890' ]
(123) 4567890
[ '(123) 4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 4567890' ]
如果
number.match
返回带有该代码的
null
,则该数字无效。这是一种简单的检查方法,然后已经解析了数字


如果要允许
a-z
,只需将所有
\d
条目更改为
[\d\w]
。()

您可以随时使用此功能直接提取号码

咖啡脚本:

console.log number.match ///

  # Match the start of the string.
  ^

  # Get the first 3 digits.
  \(?(?=\d{3})(\d{3})[).\-\s]*

  # Get the next 3 digits.
  (\d{3})[.\-\s]*

  # Get the last 4 digits
  (\d{4})

  # End of the number
  $

///
Javascript(或节点):

以下是我在CoffeeScript中运行的测试用例,以确保其工作正常:

exports '1234567890'
exports '123 456 7890'

exports '123.456.7890'
exports '123 456.7890'
exports '123.456 7890'
exports '123456.7890'
exports '123.4567890'
exports '123456. 7890'

exports '123-456-7890'
exports '123 456-7890'
exports '123-456 7890'
exports '123456-7890'
exports '123-4567890'

exports '(123)456-7890'
exports '(123)4567890'
exports '(123) 4567890'
exports '(123)456 7890'
exports '(123) 456 7890'
exports '(123) 4567890'
以及它们的产出:

1234567890
[ '1234567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '1234567890' ]
123 456 7890
[ '123 456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456 7890' ]
123.456.7890
[ '123.456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.456.7890' ]
123 456.7890
[ '123 456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456.7890' ]
123.456 7890
[ '123.456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.456 7890' ]
123456.7890
[ '123456.7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456.7890' ]
123.4567890
[ '123.4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123.4567890' ]
123456. 7890
[ '123456. 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456. 7890' ]
123-456-7890
[ '123-456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-456-7890' ]
123 456-7890
[ '123 456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123 456-7890' ]
123-456 7890
[ '123-456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-456 7890' ]
123456-7890
[ '123456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123456-7890' ]
123-4567890
[ '123-4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '123-4567890' ]
(123)456-7890
[ '(123)456-7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)456-7890' ]
(123)4567890
[ '(123)4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)4567890' ]
(123) 4567890
[ '(123) 4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 4567890' ]
(123)456 7890
[ '(123)456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123)456 7890' ]
(123) 456 7890
[ '(123) 456 7890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 456 7890' ]
(123) 4567890
[ '(123) 4567890',
  '123',
  '456',
  '7890',
  index: 0,
  input: '(123) 4567890' ]
如果
number.match
返回带有该代码的
null
,则该数字无效。这是一种简单的检查方法,然后已经解析了数字


如果要允许
a-z
,只需将所有
\d
条目更改为
[\d\w]
。()

只确保有人输入值有什么问题?如果有人无意中在那里输入了他们的电子邮件地址怎么办?那我的数据结构就全搞乱了!!“1-800-Matters”怎么样?这是一个有效的电话号码,不是吗-在这种情况下,这是医生办公室的联系方式,所以我可以只接受数字电话号码。伙计们,我理解你们的论点,但验证有它的位置,只测试字母是:
var hasAlpha=/[a-z]/I.test(s)只确保有人输入值有什么问题?如果有人无意中在那里输入了他们的电子邮件地址怎么办?那我的数据结构就全搞乱了!!“1-800-Matters”怎么样?这是一个有效的电话号码,不是吗-在这种情况下,这是医生办公室的联系方式,所以我可以只接受数字电话号码。伙计们,我理解你们的论点,但验证有它的位置,只测试字母是:
var hasAlpha=/[a-z]/I.test(s)