【问题标题】:Remove space on textbox but not between words删除文本框上的空格,但不删除单词之间的空格
【发布时间】:2012-02-17 06:38:21
【问题描述】:

我想在 keyup 事件上删除文本框文本开头的空格,但如果它位于文本之间,则不会删除空格。我该怎么做?

【问题讨论】:

  • 这就是 trim 的用途 - 它删除了字符串开头和结尾的空格。 api.jquery.com/jQuery.trim
  • 是的,它甚至会删除文本之间的空格。
  • 我试过修剪,但是当我输入另一个带有空格的单词时,它会在我输入后删除空格。
  • 问题不在于修剪,而在于你在做什么。当文本框失去焦点时,您需要这样做。
  • @rjx44: trim 用于从字符串中删除前导和尾随空格。当您在第一个单词后键入空格并执行修剪功能时,它显然会将空格视为尾随空格并将其删除

标签: javascript jquery


【解决方案1】:
<script language="javascript">

String.prototype.ltrim = function() {
return this.replace(/^\s+/,"");
}
$(function(){
    $("#idOfTextBoxHere").keyup(function(){
      $(this).val( $(this).val().ltrim());
    });
});

</script>

【讨论】:

  • 如果您更喜欢这条路线,您也可以针对 jQuery($ 而不是 String)进行原型设计。前三行对字符串进行了扩展,以提供一种新方法,允许它们被修剪掉空格。下面的定义仅在加载所有内容后执行,并分配一个处理程序以在按键时向左修剪。
【解决方案2】:

您好,我不知道您的确切需求,请纠正我

        $('#your textbox id').keyup(function () {

            var val = $(this).val();                
            val = val.replace(/^\s+/, '');              
            $(this).val(val);


        });

【讨论】:

  • 我想在 keyup 事件中删除文本框中的空格,但不删除文本框中输入的单词之间的空格
【解决方案3】:

使用正则表达式

/^\ //

删除行首的空格。

【讨论】:

    【解决方案4】:

    使用trim() 函数

    var text = "   hel  lo ";
    alert(text.trim());
    

    【讨论】:

      【解决方案5】:

      试试:

      $("#idOfTextboxHere").focusout(function(){
          $(this).val( $.trim($(this).val()) );
      });
      

      当用户点击离开时,它会修剪文本框的开头和结尾。

      【讨论】: