Javascript 需要正则表达式修复电话号码
我有允许这些格式的正则表达式 正则表达式:Javascript 需要正则表达式修复电话号码,javascript,regex,Javascript,Regex,我有允许这些格式的正则表达式 正则表达式: /^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/ 格式: (123) 456-7890 123-456-7890 123.456.7890 1234567890 我想让它允许7位数或7位数以上。目前,它允许10位数字不小于或大于该数字。 请帮忙 不要为这样复杂的电话号码而烦恼-如果你只是想检查,为什么不按照简单的方法替换任何不是数字的号码,然后检查字符串的长度
/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/
格式:
(123) 456-7890
123-456-7890
123.456.7890
1234567890
我想让它允许7位数或7位数以上。目前,它允许10位数字不小于或大于该数字。
请帮忙 不要为这样复杂的电话号码而烦恼-如果你只是想检查,为什么不按照简单的方法替换任何不是数字的号码,然后检查字符串的长度
var telephoneNumber = '(123) 456-7890';
telephoneNumber = telephoneNumber.replace(/[^\d]+/g, '');
if (telephoneNumber.length >= 7) {
console.log('Everything is OK! The number is: ' + telephoneNumber);
//Everything is OK! The number is: 1234567890
} else {
console.log('Something went wrong!');
}
这也将匹配123-abc-456-7890,但会正确地“理解它”。尝试以下方法:
^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{1,5}$
它将检查您是否至少有7个数字(最多11个)。您希望允许多少号码?没有正则表达式可以匹配多个国家/地区的电话号码,这听起来像是您需要的。相信我,我已经试过了 如上所述,只需允许用户输入任何内容,并在将其保存到数据库之前删除任何不是数字的内容。这样,当你在两年内重新设计你的应用程序时,设计师说“我想要小数而不是破折号”,你就不必去修改数据库了——你只需要调整你的表示层 不过,像这样的东西可能适合你:
/^(?:[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}|[0-9]{3}[-\s\.]{0,1}[0-9]{4})$/
符合以下条件:
12345671234567
123.4567
123-1234
1234567890
1234567890
123.456.7890
123-456-7890 ……但不是这个:
(123)1234我不想允许a-z,没有空格就可以了。我可以输入7位数或更多。最重要的是,我需要一个正则表达式,而不是函数。@user2866746
if(telephoneNumber.replace(/[^\d]+/g',).length>=7)
不是函数-只有一行-可以工作。实际上,我使用的是jQuery live validation插件,它只接受匹配的模式。这就是为什么我坚持使用正则表达式的原因。@user2866746从技术上讲,如果这个规则可以的话,你可以用一些像^(.*\d){7,}.*.*$
:或者,如果它最多是10位:^(.*\d){7,10}.$
这样愚蠢的东西。你在英国,法国。。。。但我想这是美国的问题,因为世界其他地区并不重要