Javascript - 删除粘贴上的空格

时间:2012-08-13 23:59:06

标签: javascript html css space paste

我有一个输入文本字段,其最大长度为10.该字段用于澳大利亚电话号码(10位数)。电话号码通常分为以下语法

12 12345678

如果有人复制上述内容并将其粘贴到我的输入字段中,则显然会将最后一位数字留下并保留空格。

有没有办法在粘贴到输入框之前删除任何空格?或者还有其他工作吗?

提前致谢。

4 个答案:

答案 0 :(得分:11)

这应该适合你:

<强> HTML

<input type="text" id="phone" maxlength="10" />​

<强>的JavaScript

var phone = document.getElementById('phone'),
    cleanPhoneNumber;

cleanPhoneNumber= function(e)
{
 e.preventDefault();
 var pastedText = '';

 if (e.clipboardData && e.clipboardData.getData)
 {// Standards Compliant FIRST!
  pastedText = e.clipboardData.getData('text/plain');
 }
 else if (window.clipboardData && window.clipboardData.getData)
 {// IE
  pastedText = window.clipboardData.getData('Text');
 }

 this.value = pastedText.replace(/\D/g, '');
};

phone.onpaste = cleanPhoneNumber;

小提琴:http://jsfiddle.net/y6TYp/6/

更新 nnnnnn对澳大利亚电话号码有一个很好的观点,更新替换正则表达式。

答案 1 :(得分:1)

此功能可以帮助您:

function removeSpaces(string) {
 return string.split(' ').join('');
}

或者,使用jQuery,您可以使用此处描述的方法: Delete white spaces in textbox when copy pasted with jquery

答案 2 :(得分:1)

接近您所描述的任务,您希望确保您的代码在使用或不使用javascript的不同浏览器中运行,因此我会执行以下操作:

  1. 将maxlength设置为11 - maxlength是一个HTML属性,您需要确保使用或不使用javascript,用户输入的数据不会丢失。如果用户输入11位且没有javascript - 您将需要捕获数据并从服务器端清除它。那么,服务器端验证是强制性的。

  2. 如果javascript在那里,我会使用jquery函数设置maxlength并确保删除空格,所以说你有一个ID ='title'的字段:在文件准备就绪时你写下面的代码:

    $( '输入#标题')ATTR( '最大长度', '10')的按键(limitMe);

    function limitMe(e) {
        if (e.keyCode == 32) { return true; }
        return this.value.length < $(this).attr("maxLength");
    }
    
  3. 显然,如果你有很多字段,你只需用相同的类属性装饰所有输入字段,然后将它应用到所有字段,如下所示:

    $('input.limited').attr('maxLength','10').keypress(limitMe);
    

答案 3 :(得分:0)

如果要替换包括字母字符,阿拉伯字符,大写字母和数字on paste在内的任何内容,可以使用此功能:

cleanPermalink= function(e) {
    e.preventDefault();
    var pastedText = '';
    if (window.clipboardData && window.clipboardData.getData) { // IE
        pastedText = window.clipboardData.getData('Text');
      } else if (e.clipboardData && e.clipboardData.getData) {
        pastedText = e.clipboardData.getData('text/plain');
      }
    // This can replace English, Arabic, and Numbers spaces with (-)
    this.value = pastedText.replace(/[^a-zA-Z؀-ۿ0-9-]+/g,'-');

    // In case you want both Lowercase and Replace spaces use:
    // this.value = pastedText.toLowerCase().replace(/[^a-zA-Z؀-ۿ0-9-]+/g,'-');
};

permalink.onpaste = cleanPermalink;

希望它可以帮助某人。

谢谢