Я использую директиву AngularJS для проверки правильности ввода формы. Есть ли способ заставить мое регулярное выражение допускать только один специальный символ (:) вместе с числами и алфавитами. Это директива, которую я нашел в stackoverflow.Regex, чтобы разрешить специальный символ (:) и только цифры и алфавиты
myapp.directive('noSpecialChar', function() {
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
if (inputValue == null)
return ''
cleanInputValue = inputValue.replace(/[^\w\s]/gi, '');
cleanInputValue = cleanInputValue.toUpperCase();
if (cleanInputValue != inputValue) {
modelCtrl.$setViewValue(cleanInputValue);
modelCtrl.$render();
}
return cleanInputValue;
});
}
}
});
Я пробовал добавить двоеточие в конце, но я не могу достичь своего решения.
Попробуйте '.replace (/^([^:] * :) | [^ \ w \ s]/g, function ($ 0, $ 1) {return $ 1? $ 1.replace (/ [^ \ w \ s ] +/g, '') + ':': '';}) 'вместо' .replace (/ [^ \ w \ s]/gi, '') ' –