运行代码查看结果,它将用' - '替换空格。我想只实现一个' - '在两个文本之间,比如“好日子”,但不是很好----天。因此,我想知道如何在jquery中的单词之间仅限制一个。
$('#tag').on("keydown",function(event){
var $input = $('#tag');
$input.val(function(_,v){
return v.replace(/\s+/g,'-');
});// '-'repace space
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="tag" />
&#13;
答案 0 :(得分:4)
这是因为当您输入空格时,它会被-
替换,然后当您输入另一个空格时(前一个空格已被-
替换),因此您拥有-<space>
现在,新空间再次被-
替换,因此您获得了--
$('#tag').on("keydown", function(event) {
$(this).val(function(_, v) {
return v.replace(/[\s-]+/g, '-');
}); // '-'repace space
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="tag" />