加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用正则表达式在HTML5模式属性中验证英国国民保险编号/NINO

发布时间:2020-12-14 05:37:01 所属栏目:百科 来源:网络整理
导读:我正在尝试验证英国国民保险号码.作为表格的一部分.显然它也需要验证服务器端,但我正在使用new:valid:无效的CSS伪样式,以便为用户提供表单上的即时反馈. input type="text" required="required" pattern="Foo"/ 我根本不能说正则表达.是否有人能够解决这个
我正在尝试验证英国国民保险号码.作为表格的一部分.显然它也需要验证服务器端,但我正在使用new:valid:无效的CSS伪样式,以便为用户提供表单上的即时反馈.

<input type="text" required="required" pattern="Foo"/>

我根本不能说正则表达.是否有人能够解决这个谜题并为我自己和其他人创建一个RegEx以在pattern =“#”属性中使用?

如果它有帮助,有人已经大致回答了这个问题:Regular Expression to validate UK National Insurance Number.但是,经过测试,没有任何答案似乎完全有效.

小英国国民保险号信息

格式

号码的格式是两个前缀字母,六个数字和一个后缀字母.

通常使用的示例是AB123456C.

通常,数字印有空格以配对数字,如下所示:AB 12 34 56 C.

道路规则

>前两个字母都不能
D,F,I,Q,U或V.第二个字母也不能是O.
>未分配前缀BG,GB,NK,KN,TN,NT和ZZ.
>后缀字母是A,B,C或D.

解决方法

这个应该适合您的需求:

^(?!BG|GB|NK|KN|TN|NT|ZZ)[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z](?:s*d{2}){3}s*[A-D]$

Visualization by Debuggex

演示:

var regex = /^(?!BG|GB|NK|KN|TN|NT|ZZ)[A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z](?:s*d{2}){3}s*[A-D]$/;
var input = document.querySelector("input");
var span = document.querySelector("span");

input.addEventListener("input",function (event) {
  span.innerHTML = regex.test(event.target.value) ? "?" : "?";
},false);
<input type="text" placeholder="Ex: AB 12 34 56 D" /> <span></span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读