如何修复 JQuery-mask 中的字符 'A'?

How can I fix the character 'A' in a JQuery-mask?

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

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

$('input.my-class').mask('AD000')

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

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

translation: {
  '0': {pattern: /\d/},
  '9': {pattern: /\d/, optional: true},
  '#': {pattern: /\d/, recursive: true},
  'A': {pattern: /[a-zA-Z0-9]/},
  'S': {pattern: /[a-zA-Z]/}
};

你需要把'A'改成:

{
    translation: {
        'A': {
            pattern: /A/,
            fallback: 'A',
            optional: false
        }
    }
 }

其中 fallback 保留:

When a user types a invalid char for the current position the plugin will replace it by its fallback instead of erasing them.

$('input.my-class').mask('AD000', {
    translation: {
        'A': {
            pattern: /A/,
            fallback: 'A',
            optional: false
        }
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/igorescobar/jQuery-Mask-Plugin@master/dist/jquery.mask.min.js"></script>


<form>
    <input type="text" name="field-name" class="my-class" />
</form>