Javascript 从输入值中删除最后一个字

Javascript 从输入值中删除最后一个字,javascript,jquery,Javascript,Jquery,我一直在尝试使用以下代码删除输入值的最后一个字: $('#buttonid').on('click',function () { var textVal = $('#inputid').val(); $('#inputid').val(textVal.substring(0,textVal.length - 1)); }); 此代码仅从单词中删除一个字母。我知道我可以通过在textVal.length-1中指定其字母的编号来删除整个单词。但是,单词不是静态的,所以我想使用一些

我一直在尝试使用以下代码删除输入值的最后一个字:

$('#buttonid').on('click',function () { 
    var textVal = $('#inputid').val();
    $('#inputid').val(textVal.substring(0,textVal.length - 1));
});
此代码仅从单词中删除一个字母。我知道我可以通过在
textVal.length-1
中指定其字母的编号来删除整个单词。但是,单词不是静态的,所以我想使用一些东西来删除输入值中的任何最后一个单词

编辑,注意:单词由点分隔,而不是空格

有什么建议吗?

您可以使用该方法找到分隔最后一个单词的最后一个点的位置:

$('#buttonid')。在('click',函数(){
var textVal=$('#inputid').val();
$('#inputid').val(textVal.substring(0,textVal.lastIndexOf('.'));
});

去除
使用
lastIndexOf(“”)
而不是
长度-1
。前者将获取空间的最后一个索引(表示最后一个单词,除非有任何边缘情况),并将其用作子字符串的终点

后者应该只提供最后一个字母的索引,因为调用textVal.length将导致字符串中的实际字符数,而不是单词数


$('#inputid').val(textVal.substring(0,textVal.lastIndexOf('');

另一个选项是将文本转换为数组,并删除最后一个元素。然后,使用空格作为分隔符重新连接它

$('#buttonid')。在('click',函数(){
var textVal=$('#inputid').val().split('');
textVal.pop();
$('#inputid').val(textVal.join('');
});



删除Word
您可以使用lastIndexOf方法获取当前peroid的最后一个索引。以下是代码:


$(文档).ready(函数()
{
$(“#buttonid”)。在('单击',函数()
{ 
//获取输入的值
var textVal=$('#inputid').val();
var lastIndex=textVal.lastIndexOf(“.”);
$('#inputid').val(textVal.substring(0,lastIndex));
});
});

Split on space,删除最后一个元素,然后将句子粘回。或者,只需找到最后一个空格,然后剪切后面的所有内容。我忘了提到单词是用点分隔的,而不是空格。我使用了你的代码,它删除了整个输入值。我想这是因为这些点。有什么解决方法吗?谢谢@dfski喜欢这个rege答案是x,因为如果这是为了学校或面试,那么试图解释他们是如何写的将是完全失败的……另一方面,如果这是为了真正的代码,那么它可能是最失败的efficient@JerryB对于
分隔符,请使用
textVal.lastIndexOf('.')
。并且regexp版本不会更改(regexp的另一个优点)太棒了!我用了你的regexp答案,效果非常好。非常感谢@dfsq@dfsq我很确定,虽然这样做有效,但在正则表达式中只使用
将匹配单词边界之间的任何字符。对于文本
,它应该是
\。