我正在尝试创建一个函数,可以从电话号码字段中删除某些字符。到目前为止,我已经删除了括号、空格和连字符,如在(321) 321-4321中。此外,我删除了点,如在321.321.4321。最后,我已经验证了当11位数字和1开头,甚至标点符号。
我输入的代码:
function phoneNumber(){
var number = '(321) 321-4321';
number = number.replace(/[^\d]/g, '');
return number;
}我现在正试图让它在某些情况下返回null,比如:
2-9开头时2-9开头时。任何添加语句的尝试都会使我的原始函数无效。有人能帮我吗?我是新手,但我需要帮助?
发布于 2017-12-19 16:41:16
简介
如果我没听错,你想:
2-9范围内(所以不是0或1)代码
第一个正则表达式可以使用\D而不是[^\d],因为它们的含义完全相同。
第二部分可以使用以下任何方法(以及更多方法,但这些方法可能是一些最简单的方法):
Regex和.length
/^[2-9]\d{2}[2-9]/.test(number) && number.length <= 11
var numbers = [
'(321) 321-4321',
'321.321.4321',
'123.456.7890',
'321.123.4567',
'(321) 321-4321-321'
];
function phoneNumber(number){
number = number.replace(/\D/g, '');
if(/^[2-9]\d{2}[2-9]/.test(number) && number.length <= 11) {
return number;
}
return null;
}
numbers.forEach(function(number){
console.log(phoneNumber(number));
});
charAt、正则表达式和长度
!/[01]/.test(number.charAt(0)) && !/[01]/.test(number.charAt(3)) && number.length <= 11
var numbers = [
'(321) 321-4321',
'321.321.4321',
'123.456.7890',
'321.123.4567',
'(321) 321-4321-321'
];
function phoneNumber(number){
number = number.replace(/\D/g, '');
if(!/[01]/.test(number.charAt(0)) && !/[01]/.test(number.charAt(3)) && number.length <= 11) {
return number;
}
return null;
}
numbers.forEach(function(number){
console.log(phoneNumber(number));
});
Regex (单独)
显然,您会将0更改为任何最小位数要求(减4);因此,如果您想要9的最小值,就将{5,7}放在这里。
/^[2-9]\d\d[2-9]\d{0,7}$/.test(number)
var numbers = [
'(321) 321-4321',
'321.321.4321',
'123.456.7890',
'321.123.4567',
'(321) 321-4321-321'
];
function phoneNumber(number){
number = number.replace(/\D/g, '');
if(/^[2-9]\d\d[2-9]\d{0,7}$/.test(number)) {
return number;
}
return null;
}
numbers.forEach(function(number){
console.log(phoneNumber(number));
});
发布于 2017-12-19 16:13:56
尝试如下所示,使用.length获取字符串中的字符
var number = '(321) 321-4321';
number = number.replace(/[^\d]/g, '');
console.log(number)
if (number.length > 11) {
console.log("null");
} else {
console.log(number.length);
}
if (number.match(/[a-z]/i)) {
console.log("alphabet letters found");
} else {
console.log("alphabet letters not found");
}
https://stackoverflow.com/questions/47890862
复制相似问题