只有在一些字母表后才允许数字

时间:2016-05-07 19:40:02

标签: javascript jquery html

我需要确保某个字段仅在某些默认字母字符之后使用数字,如 XXX-XX-1234 。这里XXX-XX-是不应删除的默认字符。在这些字母后,我希望用户无法输入除数字之外的任何字符。

有没有一种巧妙的方法来实现这一目标?

2 个答案:

答案 0 :(得分:2)

您也可以使用输入正则表达式模式

<input type="text" name="my_name"
  pattern="[A-Za-z]{3}-[A-Za-z]{3}-[A-Za-z]{3}-[0-9]{4}" title="my title">

在您的情况下(删除号码)

 <input type="text" name="my_name" value="ABC-DE" 
  pattern="[A-Za-z]{3}-[A-Za-z]{2}-" title="my title">

答案 1 :(得分:2)

这是FIDDLE

我希望我能够对@scaisEdge的回答发表评论,因为我刚刚建立它以添加一些更有帮助的东西,但它太多了,不适合评论:

HTML:

&#13;
&#13;
<form>
  <button>submit</button>
  <input type="text" name="name1" value="ABC-DE-" pattern="[A-Za-z]{3}-[A-Za-z]{2}-\d{4}$" title="LLL-LL-DDDD - L is any letter, D is any digit" />
  <input type="text" name="name2" value="XXX-XX-" pattern="XXX-XX-\d{4}$" title="XXX-XX-DDDD - D is any digit, rest as is" />
</form>
&#13;
&#13;
&#13;

我以他的答案为基础,然后做了以下事情来说明更多:

  • 我添加了&#34; \ d {4} $&#34;到正则表达式模式的末尾强制4个数字,然后没有别的
  • 我添加了一个新的文本输入,显示了如何强制显示特定字符​​的alphebetic / dash部分
  • 我添加了带有帮助模式提示的标题,因为当模式被拒绝时,这些提示会显示在弹出窗口中
  • 我把它全部放在一个带有提交按钮的表单中,以显示它们如何一起工作

什么不该做

我花了很多时间&#34;滚动我自己&#34;用于制作文本输入版本的代码,该文本输入特别限制了前面的所有操作(在输入更改,keydown,keyup,鼠标单击时),只允许输入最后4位数字而不是其他任何内容。它变成了一个追逐角落案例的游戏&#34;我很快就确信使用经过开发者社区彻底审查的插件或库是这种努力的方法,或者使用上面讨论过的模式属性。

不仅是&#34;垂直导向&#34;对于这种特定的模式,我甚至在经过很长时间才能解决所有角落的情况后仍然失败了。

我甚至对这些困难做了解释,并在这个答案中提出了代码和我的FIDDLE,但意识到在StackOverflow上放置破碎的代码并不是一个好主意,所以我现在做了相应的编辑来重做这个解释并摆脱我试过的替代路线的FIDDLE和代码。