JavaScript表单中拼接手机号与国家代码时如何去除手机号前置零
实现方案
你只需要在拼接手机号前,对输入的手机号做开头连续零的清除处理即可,使用正则匹配的方案兼容性最好,也能覆盖用户误输多个开头零的异常场景。
修改后的代码如下:
const countryCode = $('#country_code').val(); // 去除手机号开头的所有连续0后再拼接 const processedMobile = input.val().replace(/^0+/, ''); const mobile = countryCode + processedMobile;
逻辑说明
正则/^0+/的作用规则:
^表示匹配字符串的起始位置,只会处理手机号最开头的字符0+表示匹配1个或多个连续的0- 替换操作只会去掉开头的连续0,不会影响手机号中间、末尾的0,也不会对本身就没有开头0的手机号做任何修改
按你的场景测试:输入的手机号055642444处理后会变成55642444,和国家代码966拼接后正好得到期望结果96655642444。
可选健壮性补充
如果需要规避用户输入全零、空值的异常情况,可以加一层简单校验:
const countryCode = $('#country_code').val(); const rawMobile = input.val().trim(); const processedMobile = rawMobile.replace(/^0+/, ''); // 仅当处理后手机号不为空时才拼接,避免生成无效的纯国家代码内容 const mobile = processedMobile ? countryCode + processedMobile : '';
内容的提问来源于stack exchange,提问作者user2940558
相关产品推荐
相关产品推荐

