我有一个只允许数字的字符串
$(this).val($(this).val().replace(/([a-zA-Z])/g, ""));
如何添加空格,以便在一个字符串中以相同的方式替换它?
答案 0 :(得分:6)
要仅匹配非数字,您可以[^0-9]
代替[a-zA-Z]
(这称为negated character class)。
如果您希望输入仅允许数字,则使用HTML5,您只需执行<input type="number">
即可。为了获得更广泛的支持,有很多JavaScript解决方案,请按照评论中的建议查看How to allow only numeric (0-9) in HTML inputbox using jQuery?。
答案 1 :(得分:2)
只需将空间添加到正则表达式:
"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
答案 2 :(得分:0)
使用\s
- 匹配单个空格字符,包括空格,制表符,换页符,换行符。相当于