<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>
答案 0 :(得分:0)
您当前的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("-");
};
&#13;
<input id="myText" type="text" placeholder="XXX-XXX-XXX" /></input>
&#13;
希望这有帮助!如果您有任何疑问,请告诉我。
供将来参考 - 尝试通过解释您想要达到的目标来明确说明您的问题,并具体说明您遇到的问题。通过这种方式,您更有可能吸引好的答案,而不是赞成票。