【发布时间】:2013-09-25 08:34:29
【问题描述】:
我有一个只允许数字的字符串
$(this).val($(this).val().replace(/([a-zA-Z])/g, ""));
如何添加一个空格,以便在一个字符串中以相同的方式替换为“”?
【问题讨论】:
-
你想在哪里添加空间?
标签: javascript jquery replace
我有一个只允许数字的字符串
$(this).val($(this).val().replace(/([a-zA-Z])/g, ""));
如何添加一个空格,以便在一个字符串中以相同的方式替换为“”?
【问题讨论】:
标签: javascript jquery replace
要仅匹配非数字,您可以使用[^0-9] 而不是[a-zA-Z](这称为negated character class)。
如果您希望输入仅允许数字,使用 HTML5 您可以简单地使用<input type="number">。如需更广泛的支持,有很多 JavaScript 解决方案,请查看 cmets 中建议的 How to allow only numeric (0-9) in HTML inputbox using jQuery?。
【讨论】:
input 事件。我编辑了你的小提琴:jsfiddle.net/7rSVb/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
【讨论】:
使用\s - 匹配单个空白字符,包括空格、制表符、换页符、换行符。相当于
【讨论】: