输入字段限制为9个字符,并且在3个字符之后自动广告“0”-&”;
Input field limit 9 char and after 3 char automaticly ads "-"
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>
<script type="text/javascript">
document.getElementById("myText").value.substr(0, 9).match(/.{1,3}/g).join("-");
</script>
当前的JavaScript存在一些问题。首先,当加载页面时,脚本将只运行一次,这意味着在此之后输入到myText
的任何输入都将永远不会被处理。考虑绑定到myText
的事件,例如onkeyup
事件。
另一个问题是,当将myText
的值拆分为3个字符的部分时,您的JavaScript没有考虑到现有的短划线-这会导致不理想的行为,即在看似随机的位置上,越来越多的短划线将被添加到值中。
最后,正如Tushar在评论中提到的,您需要将myText
的值设置为您创建的新的、经过处理的值。否则,这个值最终会被未使用和丢弃,并且您的代码似乎什么都不做。
把这些放在一起,固定代码可能看起来像:
var textInput = document.getElementById("myText");
textInput.onkeyup = function()
{
var dashlessInput = textInput.value.replace(/-/g, "");
textInput.value = dashlessInput.substr(0, 9).match(/.{1,3}/g).join("-");
};
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>
希望这能有所帮助!如果你有任何问题,请告诉我。
为了将来的参考,试着通过解释你想要实现的目标,并明确指出你面临的问题,来清楚地说明你的问题。这样,你更有可能得到好的答案,而不是反对票
相关文章:
- 删除字符串中第5个字符之后的所有字符
- 查找上一个<p>在第n个字符之后
- 按键时的Javascript事件,但在输入字符之后
- 任何匹配模式的方法,要么在某个字符之前,要么在某个字符之后
- Reg ex 表示特定字符之后和其他字符之间的任何内容
- 如何在字符串中的第二个字符之后插入字符
- 在 n 个字符之后剪一个字符串,但如果它在一个单词的中间,则剪掉整个单词
- 阅读更多按钮 类别描述 在某些关于字符之后
- 如何在文本的每 5,000 个字符之后的第一个
或
之后插入一个 - 如何在 JavaScript 中获取最后一个特定字符之后的子字符串
- 检查regex是在字符串的开头还是在特定字符之后开始
- regex匹配第一个字符之前和最后一个字符之后的空格或符号之间的字符串
- 输入字段限制为9个字符,并且在3个字符之后自动广告“0”-&”;
- 替换URL中最后一个字符之后的所有内容
- Javascript防止在n utf8字符之后写入表单元素
- 在提交表单之前,Javascript在X字符之后删除
- 对输入的字符进行计数,并在x个字符之后增加一个变量
- 如何移除特定字符之后的所有内容
- 如何在HTML中某些字符之后换行
- Jquery -在字符串的第一个字符之后添加字符