如何修复 JQuery 掩码中的字符“A”?

Eri*_*oni 5 javascript asp.net-mvc jquery jquery-mask

我一直在 ASP.NET MVC 中构建一个将全球化的邮政编码组件。这意味着根据供应商的国家/地区,文本框将设置正确的邮政编码掩码。问题是某些国家/地区的掩码中固定了“A”字符。例如:安道尔的邮政编码是'AD000'(我的面具),其中AD是固定的,后面是3位数字。我的组件是动态的,所以我在数据库中按国家/地区保存了掩码,并且视图呈现我的组件能够设置它。但是字符 'A' 是 JQuery-mask 中的保留字符,表示 AZ 字母或数字。所以,当国家是安道尔时,我的 maks 不会强迫用户输入 A,用户可以输入任何内容,我不希望这种行为。我能做什么?

我在某处看到如果我使用 '\' 它会将下一个字符理解为文字。但它没有用

$('input.my-class').mask('AD000')
Run Code Online (Sandbox Code Playgroud)

我想要的是,当用户开始数字时,组件会自动渲染 AD,然后等待用户输入数字

gae*_*noM 4

您可以自定义翻译选项。默认值为:

translation: {
  '0': {pattern: /\d/},
  '9': {pattern: /\d/, optional: true},
  '#': {pattern: /\d/, recursive: true},
  'A': {pattern: /[a-zA-Z0-9]/},
  'S': {pattern: /[a-zA-Z]/}
};
Run Code Online (Sandbox Code Playgroud)

您需要将“A”更改为:

{
    translation: {
        'A': {
            pattern: /A/,
            fallback: 'A',
            optional: false
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

后备停留在哪里:

当用户在当前位置输入无效字符时,插件将用其后备替换它,而不是删除它们。

translation: {
  '0': {pattern: /\d/},
  '9': {pattern: /\d/, optional: true},
  '#': {pattern: /\d/, recursive: true},
  'A': {pattern: /[a-zA-Z0-9]/},
  'S': {pattern: /[a-zA-Z]/}
};
Run Code Online (Sandbox Code Playgroud)
{
    translation: {
        'A': {
            pattern: /A/,
            fallback: 'A',
            optional: false
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)