Ответ 1
Для этого требуется, по крайней мере, один из каждого (a-z, A-Z и 0-9):
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]+)$
Я хочу регулярное выражение для буквенно-цифровых символов в angularJS, я пробовал некоторое регулярное выражение типа "(\ d [a-z])", но они позволяют мне вводить только число, а также только алфавиты. Но я хочу, чтобы регулярное выражение не позволяло мне вводить их.
Пример: 121232, abchfe, abd() *, 42232 ^ 5 $ - это пример ввода недействительный. 12fUgdf, dGgs1s23 - это некоторые действительные входы.
Для этого требуется, по крайней мере, один из каждого (a-z, A-Z и 0-9):
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]+)$
Если вы хотите вернуть замененный результат, это будет работать:
var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);
Это вернет:
Test123TEST
ИЛИ
/^([a-zA-Z0-9 _-]+)$/
указанное выше регулярное выражение допускает пробелы в строке и ограничивает специальные символы. Оно позволяет только a-z, A-Z, 0-9, пробел, подчеркивание и тире.
Вы можете попробовать это. это выражение удовлетворяет по крайней мере одному числу и одному символу, и никакие другие специальные символы
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
в angular может тестироваться как:
$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);
попробуйте следующее: ^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
dGgs1s23-valid
12fUgdf-valid,
121232-invalid,
abchfe-in valid,
abd()*- invalid,
42232^5$- invalid