我有这段代码可以从输入字段中删除任何数字值。
这样可以正常工作,但问题是它也会删除那些不想要的空格。
这是我的代码:
$(document).on('keyup','.myclassname', function(e){
var regexp = /[^a-zA-Z]/g;
if($(this).val().match(regexp)){
$(this).val( $(this).val().replace(regexp,'') );
}
});
有人可以就此提出建议吗?
答案 0 :(得分:3)
您的正则表达式目前匹配非英语字母表的所有内容,如果您只想删除数字内容,则/[0-9]/g
或/\d/g
var str = "1A3 AAA";
var regexp = /[0-9]/g;
console.log(str.replace(regexp, ""));
答案 1 :(得分:2)
快速回答是改变这个
var regexp = /[^a-zA-Z]g;
到此
[^a-zA-Z\s]
这意味着:匹配下面列表中不存在的单个字符,来自a-z,A-Z和\ s(任何空格字符)的字符
较短的版本是:
[0-9]+
这意味着:匹配下面列表中的单个字符PRESENT,匹配一次和无限次,只匹配0到9之间的数字,实现您真正想要做的事情"删除任何数值"
更短的版本是:
[\d]+
等于[0-9] +
以前,您排除了您不想要的字符,但如果您只选择所需字符,则会更容易,更短,更快。