我一直试图使用以下代码删除输入值的最后一个单词:
$('#buttonid').on('click',function () {
var textVal = $('#inputid').val();
$('#inputid').val(textVal.substring(0,textVal.length - 1));
});
此代码只删除单词中的一个字母。我知道我可以通过在textVal.length - 1
中指定其字母的数量来删除整个单词。但是,这个词不是静态的,所以我想使用一些东西来删除输入值中的任何最后一个词。
编辑,注意:字词用点分隔,而不是空格。
有什么建议吗?
答案 0 :(得分:5)
您可以使用lastIndexOf
方法查找分隔最后一个单词的最后一个点的位置:
$('#buttonid').on('click', function () {
var textVal = $('#inputid').val();
$('#inputid').val(textVal.substring(0, textVal.lastIndexOf('.')));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="buttonid">Remove</button>
<input type="text" id="inputid">
如果不再次重新选择相同的元素但使用val
方法中的函数,也可以使代码更清晰:
$('#buttonid').on('click', function () {
$('#inputid').val(function() {
return this.value.substring(0, this.value.lastIndexOf('.'));
});
});
奖励点。如果你想要你可以使用非常简单的正则表达式(尽管这里可能有点过分,但正则表达式比'.'
中的lastIndexOf
更可靠)以删除最后一个单词边界之后的所有内容,例如:
$('#inputid').val(function() {
return this.value.replace(/\b.\w*$/, '');
});
答案 1 :(得分:1)
使用lastIndexOf(' ')
代替length - 1
。前者将采用空格的最后一个索引(表示最后一个单词,除非您可能有任何边缘情况)并将其用作子字符串的终点。
后者应该只给你最后一个字母的索引,因为调用textVal.length会导致字符串中的实际字符数,而不是单词。
$('#inputid').val(textVal.substring(0, textVal.lastIndexOf(' '));
答案 2 :(得分:1)
另一种选择是将文本转换为数组,并pop()
将其转换为最后一个元素。然后,使用空格作为分隔符重新加入它。
$('#buttonid').on('click', function () {
var textVal = $('#inputid').val().split(' ');
textVal.pop();
$('#inputid').val(textVal.join(' '));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="inputid"></textarea><br>
<button id="buttonid">Remove Word</button>
&#13;
答案 3 :(得分:1)
您可以使用lastIndexOf方法获取最近发生的peroid索引。这是代码:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$("#buttonid").on('click',function ()
{
//get the input's value
var textVal = $('#inputid').val();
var lastIndex = textVal.lastIndexOf(".");
$('#inputid').val(textVal.substring(0,lastIndex));
});
});
</script>
</head>
<body>
<input type="button" id="buttonid" value="Go">
</input>
<input type="text" id="inputid" value="Anything.could.be">
</input>
</body>
</html>