输入掩码 - 我想转换为大写并同时应用正则表达式

时间:2017-11-16 11:16:54

标签: jquery jquery-inputmask

我正在使用jquery.inputmask库。 对于英国国民保险号,以下REGEX适用:

  

^ [A-CEGHJ-PR-TW-Z] {1} [A-CEGHJ-NPR-TW-Z] {1} [0-9] {6} [A-DFM] {0,1} $

请参阅http://regexlib.com/REDetails.aspx?regexp_id=527&AspxAutoDetectCookieSupport=1

然而,当用户输入数字以将其字母转换为大写字母时,我想要的是用户。 但是当我在jquery中包含这些代码行时,我无法输入任何内容;

var regexNationalInsuranceNumber = "^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$";
$("input.niNo").inputmask("AA999999A").inputmask("Regex", { regex: regexNationalInsuranceNumber });

那么我该如何让它发挥作用呢?

3 个答案:

答案 0 :(得分:1)

证明这个!

$('.maskAndUppercase')
.keyup(function () {
    $(this).val($(this).val().toUpperCase());
})
.mask('AAA-0AA0', {
    selectOnFocus: true
});

答案 1 :(得分:0)

根据文档,您需要添加大小写:'upper'

$("input.niNo").inputmask("AA999999A").inputmask("Regex", { 
   regex: regexNationalInsuranceNumber,
   casing: 'upper' });

https://github.com/RobinHerbots/Inputmask#casing

但是,我无法正常工作,所以我选择了css路线:

text-transform: uppercase;

答案 2 :(得分:0)

Javascript有一个.toUpperCase()方法:

var regexNationalInsuranceNumber = "^[A-CEGHJ-PR-TW-Z]{1}[A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]{0,1}$";
$("input.niNo")
  .val($("input.niNo").val().toUpperCase())
  .inputmask("AA999999A")
  .inputmask("Regex", { regex: regexNationalInsuranceNumber });

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase