Регулярное выражение для буквенно-цифровых символов в Angularjs

Я хочу регулярное выражение для буквенно-цифровых символов в angularJS, я пробовал некоторое регулярное выражение типа "(\ d [a-z])", но они позволяют мне вводить только число, а также только алфавиты. Но я хочу, чтобы регулярное выражение не позволяло мне вводить их.

Пример: 121232, abchfe, abd() *, 42232 ^ 5 $ - это пример ввода недействительный. 12fUgdf, dGgs1s23 - это некоторые действительные входы.

Ответ 1

Для этого требуется, по крайней мере, один из каждого (a-z, A-Z и 0-9):

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9]+)$

Ответ 2

Если вы хотите вернуть замененный результат, это будет работать:

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, пробел, подчеркивание и тире.

Ответ 3

Вы можете попробовать это. это выражение удовлетворяет по крайней мере одному числу и одному символу, и никакие другие специальные символы

^(?=.*[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);

PLUNKER DEMO

Ответ 4

попробуйте следующее: ^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$

dGgs1s23-valid
12fUgdf-valid,
121232-invalid, 
abchfe-in valid,
 abd()*- invalid, 
42232^5$- invalid