Javascript HTML文本框输入模式0000000-0000

Javascript HTML文本框输入模式0000000-0000,javascript,html,jquery,frontend,Javascript,Html,Jquery,Frontend,基本上我有一个HTML文本框,用户输入数字。 我想要的是在第7位数字后自动加上a- 基本上有这样的模式: 0000000-0000 <input type="text" class="form-control width-160" name="value" required maxlength="10"/> 我很确定我需要使用正则表达式,但是我可以直接在HTML中使用它,还是需要一些jQuery?尝试并更改输入长度is11 $('input')。在('input',func

基本上我有一个HTML文本框,用户输入数字。 我想要的是在第7位数字后自动加上a- 基本上有这样的模式:

0000000-0000

 <input type="text" class="form-control width-160" name="value" required maxlength="10"/>

我很确定我需要使用正则表达式,但是我可以直接在HTML中使用它,还是需要一些jQuery?

尝试并更改
输入长度
is
11

$('input')。在('input',function()上{
var str=$(this.val().replace('-','');
如果(str.length>7)
$(this.val(str.slice(0,7)+'-'+str.slice(7,str.length))
})

您可以为此使用
jquery.mask

更多信息

用法:

<input type="text" class="phone" name="value"/>

$(document).ready(function(){
  $('.phone').mask('0000000-0000');
});

$(文档).ready(函数(){
$('.phone')。掩码('0000000-0000');
});
现场观看


无需使用任何外部库,您可以使用
onkeyup
事件,只需测试我们是否在值中键入第7个字符append
-

以下是您需要的:

var changeIt = function changeIt(input) {
  if (input.value.length === 7) {
    input.value = input.value + "-";
  }
}
演示:

下面是一个工作片段:

var changeIt=函数changeIt(输入){
if(input.value.length==7){
input.value=input.value+“-”;
}
}

你知道你需要正则表达式,但是你到目前为止都尝试了什么?检查这个嘿为什么你否决了我的答案它很好你不需要使用jQuery。没有任何理由为此使用jQuery。输入不限于数字,并且试图在“-”使输入几乎不可用之前编辑该部分。答案很好,但我将使用Ambrish的答案,因为@RobG的观察。谢谢你们两位!你必须直接按enter键而不键入任何内容这与我输入的内容无关,我总是得到“Corect!”。你的浏览器不支持HTML5如果对某个特定功能缺乏支持意味着浏览器“不支持HTML5”,那么所有使用的浏览器可能都在同一条船上。有多少支持每种类型的输入元素及其所有功能?;-)太神了非常容易使用。我选择这个作为我的答案!