【问题标题】:How to convert special characters into literal characters in jQuery Mask plugin如何在 jQuery Mask 插件中将特殊字符转换为文字字符
【发布时间】:2015-09-03 04:34:17
【问题描述】:

我有一个使用jQuery mask plugin 的表单。在大多数字段输入中,它使用掩码为“99999-999”并且有效:插件自动在字段中显示“-”字符。用户无需输入“-”字符。 但是,当我指定“999,00”时,它会更改“0”字符以接受每个数字,这不是这个特定输入所需要的。有没有办法将其更改为文字“0”字符,而不是表示 [0-9] 的 0?

PS:我已经尝试过使用掩码翻译。它不会自动显示“0”字符,而是只禁止输入除“0”之外的每个字符。

$("#foobar").mask("999,00", {translation : 
  {'0' : {pattern: /0/}}
});

【问题讨论】:

  • 您是否试图避免将数字 0 输入到屏​​蔽字段中?
  • @DinoMyte 不,我只需要在输入前 3 个数字后自动输入“00”。它需要通过掩蔽来实现。
  • 您可以通过将“0”从 Mask 的全局翻译中删除(和/或“重命名”它,如果您仍想使用产生相同行为的 something)来按字面意思使用“0”) .我这样做了,没有编辑 Mask 的代码,在这里:jsfiddle.net/en7o31t4/1。但是,我仍然有问题。 1) 它只在已经输入前3位数字后键入任何键后添加“,00”;不知道如何让它们在 999 之后自动显示。 2) 任何后续的编辑都会变得有点时髦;文字零似乎仍然与其他数字的正则表达式交互错误。无论如何都想把它寄给你,FWIW。

标签: javascript jquery mask


【解决方案1】:

试试这个:

$("#data").mask("99,ZZ", {
    translation: {
        'Z': {
          pattern: /[0]/, 
          fallback: '0'
        }
      }
  });

您可以查看结果Here

【讨论】:

  • 它实际上不适用于我的项目,但我在其他站点进行了测试并且它有效。我会尝试解决这个兼容性问题。不过,谢谢。
  • 更新: 我的项目有一个未更新的掩码插件版本。因此,无法识别“后备”属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 2012-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 2019-02-17
  • 2013-05-02
相关资源
最近更新 更多