这是html代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="telnumber" maxlength="20" />
<script>
$('.telnumber').keyup(function() {
foo = $(this).val().split("-").join(""); // remove hyphens
foo = foo.match(new RegExp('.{1,2}$|.{1,2}$|.{1,6}', 'g')).join("-");
$(this).val(foo);
});
</script>
&#13;
我希望我的输出像528228-25-5258
。
答案 0 :(得分:0)
因此,对于以下解决方案,需要了解一些关键点。
首先,我将事件更改为oninput
,以便只要文本框上的输入发生更改,事件就会触发,而不是在提升键时。
其次,我没有使用正则表达式,而是根据旧的字符串创建了一个新的字符串,如果字符串足够长(根据您的规范,则为6或8个字符),我们会在字符串上插入短划线
第三,我们将输入拆分为数组,然后在必要时插入连字符后再次加入。
答案 1 :(得分:0)
您可以将pattern
属性与RegExp
\d{6}-\d{2}-\d{4}
匹配,以匹配六位数字,然后是短划线"-"
,后跟两位数字,然后是短划线"-"
,后跟四位数字数字; maxlength
应设置为14
而不是20
;将placeholder
设置为预期.value
999999-99-9999
;使用input
事件检查this.validity.patternMismatch
,如果false
,则将<input type="text">
设置为disabled
,在<input type="reset">
显示同级元素click
事件<input type="text">
.value
设置为空字符串""
。利用设置为<label>
for
的{{1}}属性的相邻id
元素向用户显示通知。
<input type="text">
&#13;