南非移动Javascript正则表达式
我正在用Javascript编写一个简单的手机号码验证程序,但无法使正则表达式正常工作 南非移动电话号码目前设置为:南非移动Javascript正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我正在用Javascript编写一个简单的手机号码验证程序,但无法使正则表达式正常工作 南非移动电话号码目前设置为: 开始0 [678](1位) [0-9](1位) [0-9](7位数字) 例如0821234567,但人们也可以输入0821234567(带空格或其他方式)。我想使用正则表达式来测试,因为我发现082123456d也会作为有效值返回,所以只需检查数字即可 以下是我的示例函数: <script type="text/javascript"> func
- 开始0
- [678](1位)
- [0-9](1位)
- [0-9](7位数字)
<script type="text/javascript">
function regex(number) {
var regex = /0[678]\d[0-9]\d[0-9]{7,}\d/g;
if (regex.test(number) === true) {
console.log("work");
} else {
console.log("no");
}
}
</script>
函数正则表达式(数字){
var regex=/0[678]\d[0-9]\d[0-9]{7,}\d/g;
if(正则表达式测试(数字)==true){
控制台日志(“工作”);
}否则{
控制台日志(“否”);
}
}
在我看来,验证电话号码最简单的方法就是执行。替换(/\D/g')
删除任何非数字的内容,然后查看其余内容是否有效。另外,请确保在开始和结束时分别使用^
和$
,以停止082123456d
事件。@NiettheDarkAbsol您应该把它作为一个答案。这实际上是最好的解决方案。前0-9有什么特别之处,应该与后7位数字分开计算?你不能只做[0-9](8位)
?
var number = '0821234568'; //082123456d or 082 123 4567
var trimmed = number.replace(/\s/g, '');
var regex = /^0(6|7|8){1}[0-9]{1}[0-9]{7}$/;
if (regex.test(trimmed) === true) {
console.log("work");
else
console.log("no");