触发条件后如何删除第一个空格?

时间:2018-06-23 13:22:45

标签: javascript

条件触发后我要删除第一个空格

let inp = document.getElementById("in");
function hendler(e) {
    if(e.keyCode === 32) {
       inp.value = null;
       inp.value.replace(/\s/g, '');
    }
}
inp.addEventListener('onblur', hendler, false);
<input type="text" id="in" >

2 个答案:

答案 0 :(得分:1)

为什么不使用string.trim()方法 您可以使用以下示例作为您的代码:-在给定代码的第5行中使用inp.value.trim() 下面的代码可以正常工作

  var inp = document.getElementById("in");
        function hendler() {
            inp.value = inp.value.trim();
        }
        inp.addEventListener('blur', hendler,false);

inp.addEventListener()中,您必须使用模糊而非onblur

答案 1 :(得分:1)

您不能将e.keyCodeblur事件一起使用。 e.keyCode将为空,因为您没有触发键事件。它将始终返回0。您应该更改函数的逻辑。此外,事件名称是blur,而不是onblur。请参见下面的代码:

let inp = document.getElementById( 'in' );

inp.addEventListener( 'blur', function() {
  var val = this.value
  if ( val && val.charCodeAt( 0 ) == 32 ) this.value = val.substr( 1 )
}, false )
<input type="text" id="in" >

然后要从句子开头删除所有空格,请按照下列步骤操作:

let inp = document.getElementById( 'in' );

inp.addEventListener( 'blur', function() {
  var val = this.value
  if ( val && val.charCodeAt( 0 ) == 32 ) this.value = val.trim()
}, false )
<input type="text" id="in" >