如何修复 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>
我一直在 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>