Javascript:正则表达式删除空格?

时间:2017-08-17 16:31:48

标签: javascript regex

我有这段代码可以从输入字段中删除任何数字值。

这样可以正常工作,但问题是它也会删除那些不想要的空格。

这是我的代码:

$(document).on('keyup','.myclassname', function(e){
  var regexp = /[^a-zA-Z]/g;
  if($(this).val().match(regexp)){
    $(this).val( $(this).val().replace(regexp,'') );
  }
});

有人可以就此提出建议吗?

2 个答案:

答案 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] +

以前,您排除了您不想要的字符,但如果您只选择所需字符,则会更容易,更短,更快。