我想允许用户仅在此输入字段中输入字母数字和空格,但我似乎无法使其工作。
我可以输入字母数字,但无法输入空格。
我尝试使用/[^0-9a-zA-Z\.\\s]/g
,
/[^0-9a-zA-Z \.]/g
,
/[^\w ]/g
但没有一个有效。请帮忙。
app.directive('onlyAlphabets', function() {
return {
require: '?ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
if(!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
if (angular.isUndefined(val)) {
var val = '';
}
var clean = val.replace(/[^0-9a-zA-Z\.]/g, '');
var decimalCheck = clean.split('.');
if(!angular.isUndefined(decimalCheck[1])) {
decimalCheck[1] = decimalCheck[1].slice(0,2);
clean =decimalCheck[0] + '.' + decimalCheck[1];
}
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function(event) {
if(event.keyCode === 32) {
event.preventDefault();
}
});
}
};
})
答案 0 :(得分:1)
仅允许使用字母数字和空格。
/^[A-Za-z0-9\s]+$/m
^
开始A-Z
大写字母。a-z
小写字母。0-9
位数。\s
空间[A-Za-z0-9\s]+
因此上述内容将重复一次或多次。从输入字符串
中删除除空格之外的非字母数字字符val.replace(/[^0-9a-zA-Z\s]/g, '');