本文介绍如何在JavaScript中使用正则表达式验证用户输入的姓名和身份证号码。针对中国身份证15位或18位(含校验位X)的格式进行匹配,并利用Unicode范围校验2至4个汉字的真实姓名,适用于实名认证接口调用前的严格数据过滤。
首先展示相关代码实现。
function isCardNo(card)
{
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert("身份证输入不合法");
return false;
}
}
JS验证真实姓名与身份证号的背景
在近期项目中,调用实名认证接口的成本远高于短信验证,因此必须对调用条件进行严格把控。为此,我们需要在前端使用JS验证真实姓名与身份证号,以确保数据合法性。
接下来进入具体实现环节。
JS验证真实姓名主要依赖Unicode字符匹配。考虑到中国公民姓名长度通常介于2到4个汉字之间,正则表达式中需重复匹配{2,4}次。
JS验证真实姓名实现
1. JS验证真实姓名逻辑如下:
var regName =/^[\u4e00-\u9fa5]{2,4}$/;
if(!regName.test(name)){
alert(‘真实姓名填写有误‘);
return false;
}
JS验证身份证号实现
JS验证身份证号需兼容中国一代身份证(15位纯数字)和二代身份证(18位,末位校验位可为数字或字符‘X’/‘x’)。具体包含四种情况:a. 15位纯数字;b. 18位纯数字;c. 前17位为数字,第18位为‘X’;d. 前17位为数字,第18位为‘x’。
2. JS验证身份证号逻辑如下:
var regIdNo = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(!regIdNo.test(idNo)){
alert(‘身份证号填写有误‘);
return false;
}
以上介绍了利用JS正则表达式验证身份证号码及真实姓名的方法,希望能提供有益参考。如有任何疑问,欢迎留言交流,小编将及时回复。感谢对本站的支持!