英国公司注册号的输入掩码

时间:2018-06-05 09:56:14

标签: regex jquery-inputmask

英格兰和威尔士的英国公司注册号由8个整数组成。 对于苏格兰来说,它是" SC"其次是6个整数,对于北爱尔兰,它是" NI"其次是6个整数。 输入掩码的文档是全面的,请参阅http://github.com/RobinHerbots/jquery.inputmask。 最简单的解决方案是;

$("input.CompanyFormat").inputmask("**999999",  "placeholder": "", "casing": "upper" });

但这不是最好的解决方案。用户应该只能输入" SC"," NI"或2位数后跟6位数。

1 个答案:

答案 0 :(得分:1)

所有输入掩码共有的正则表达式方法存在问题:单个字符串输入完全不知道上下文。您只能为单个字符输入定义特殊模式,例如如果你想让第一个字符为S,你可以在definitions中定义它,但它不会知道它后面会发生什么或它前面会发生什么。

因此,您无法为通配符定义多字符模式,您必须使用其他验证机制以及掩码。

E.g。您可以使用输入HTML5 pattern验证来告诉用户模式无效:

<input type="text" pattern="(SC|NI|[0-9]{2})[0-9]{6}" title="Wrong input!">

请参阅HTML5演示:

&#13;
&#13;
<form name="form1"> 
 <input pattern="(SC|NI|[0-9]{2})[0-9]{6}" title="Wrong input!" />
 <input type="Submit"/> 
</form>
&#13;
&#13;
&#13;

pattern="(SC|NI|[0-9]{2})[0-9]{6}"(它将编译为/^(?:(SC|NI|[0-9]{2})[0-9]{6})$/,在FF和Chrome中使用u修饰符)将匹配任何匹配的输入

  • ^ - 字符串开始(隐式)
  • (SC|NI|[0-9]{2}) - SCNI或2位
  • [0-9]{6} - 6位数
  • $ - 字符串结尾(隐式)。