Javascript - 删除粘贴上的空格
Javascript - Removing spaces on paste
>我有一个最大长度为 10 的输入文本字段。该字段用于澳大利亚电话号码(10 位数字)。电话号码通常分为以下语法
12 12345678
如果有人复制上述内容并将其粘贴到我的输入字段中,它显然会省略最后一个数字并保留空格。
有没有办法在粘贴到输入框中之前删除任何空格?还是有其他解决方法?
提前谢谢。
这应该适合您:
.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对澳大利亚电话号码有一个很好的观点,更新替换正则表达式。
这个函数可以帮助你做到这一点:
function removeSpaces(string) {
return string.split(' ').join('');
}
或者,使用 jQuery,您可以使用下面描述的方法:使用 jquery 复制粘贴时删除文本框中的空格
接近您描述的任务,您希望确保您的代码在有或没有javascript的情况下在不同的浏览器中工作,因此我会执行以下操作:
-
将 maxlength 设置为 11 - maxlength 是一个 HTML 属性,您需要确保无论是否使用 javascript,用户输入的数据都不会丢失。如果用户输入 11 位数字并且没有 javascript - 您将需要捕获数据并从服务器端清理它。好吧,服务器端验证是强制性的。
-
如果 javascript 在那里,我会使用 jquery 函数来设置 maxlength 并确保删除空格,所以假设你有一个 ID = 'title' 的字段:在文档准备就绪时,您编写以下代码:
$('input#title').attr('maxLength','10').keypress(limitMe);
function limitMe(e) { if (e.keyCode == 32) { return true; } return this.value.length < $(this).attr("maxLength"); }
显然,如果您有许多字段,您只需使用相同的类属性装饰所有输入字段,然后将其应用于所有字段,如下所示:
$('input.limited').attr('maxLength','10').keypress(limitMe);
替换任何内容,包括字母字符、阿拉伯字符、大写字母和数字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;
希望它可以帮助某人。
谢谢
- 如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容
- JavaScript从字符串中删除尾随空格和句点
- 用于在Javascript中删除多个空格的特殊字符
- 使用 JavaScript 删除标签之间的每个空格
- 当可见属性设置为 false 时,使用 JavaScript 删除空格
- Javascript - 删除粘贴上的空格
- 在某些情况下,“text”方法会删除单词之间的空格
- JavaScript 从字符串中删除句号、逗号和空格
- 删除仅空格数组元素
- 我想限制用户在jquery中输入文本后面的空格,如果它在文本后面,我会删除空格
- regex删除除回车以外的空格
- 删除给定字符前的多余空格
- 如何从加载到javascript中的导出XML数据中删除不需要的空格
- 删除空格后的所有字符串
- 通过JavaScript或jQuery删除P标记,其中包含不间断的空格
- Regex从空格分隔的字符串中删除连续重复项
- jQuery从数组中删除空格
- 谷歌地图自动完成删除空格并在地址字符串中插入加号(+)
- 删除标点符号 javascript/jquery 之前的空格
- 有人知道在线的尾随空格删除器吗?