2

我有一个只允许数字的字符串

$(this).val($(this).val().replace(/([a-zA-Z])/g, ""));

如何添加空格,以便在一个字符串中以相同的方式替换为“”?

4

3 回答 3

7

要仅匹配非数字,您可以[^0-9]代替[a-zA-Z](这称为否定字符类)。

如果您希望输入仅允许数字,则使用 HTML5 您可以简单地执行<input type="number">. 为了获得更广泛的支持,有很多 JavaScript 解决方案,看看How to allow only numeric (0-9) in HTML inputbox using jQuery? 正如评论中所建议的那样。

于 2013-09-25T08:45:57.333 回答
3

只需将空间添加到您的正则表达式:

  "asfasd asdf asdf".replace(/([a-zA-Z ])/g, "");

产量:

  ""

编辑:我误解了你的问题。如果您想阻止每个输入但数字使用此正则表达式:

function removeNotAllowedChars($input) {
   $input.val($input.val().replace(/[^0-9]/g, ''));
}

$('#myText')
   .keyup(function() {
     var $input = $(this);
     removeNotAllowedChars($input);
   })
   .change(function() {
     var $input = $(this);
     removeNotAllowedChars($input);
   });

如果用户键入字符并且在焦点更改后粘贴输入,则使用这些脚本会立即删除输入。在这里试试:JSFiddle

于 2013-09-25T08:36:33.060 回答
0

use \s- 匹配单个空白字符,包括空格、制表符、换页符、换行符。相当于

正则表达式指南

于 2013-09-25T08:37:08.467 回答