Мне нужно регулярное выражение, которое будет позволять вводить только AZ, az, 0-9, символ _ и точку (.).
Я старался:
[A-Za-z0-9_.]
Но это не сработало. Как я могу это исправить?
Ответ 1
^[A-Za-z0-9_.]+$
С начала и до конца строки сопоставьте один или несколько из этих символов.
Edit:
Обратите внимание, что ^ и $ соответствуют началу и концу строки. Когда многострочный разрешен, это может означать, что одна строка соответствует, но не полная строка.
Работая над тем, что вы дали, я предположим, что вы хотите проверить, что кто-то НЕ ввел никаких писем, кроме тех, которые вы указали. Для этого вам нужно искать любые символы, кроме перечисленных:
[^A-Za-z0-9_.]
И используйте это в совпадении в коде, например:
if ( /[^A-Za-z0-9_.]/.match( your_input_string ) ) {
alert( "you have entered invalid data" );
}
Знает что?
Ответ 3
Возможно, вам нужно уточнить, что не работает и в какой среде вы находитесь.
Что касается утверждения о том, что точка является специальной в классе charackter, это неверно в каждой среде программирования. Например, следующий perl script
use warnings;
use strict;
my $str = '!!!.###';
$str =~ s/[A-Za-z_.]/X/g;
print "$str\n";
производит
!!!X###
Ответ 4
регулярное выражение:/^[a-zA-Z0-9_.]$/i
Это работает
Ответ 5
Вы можете просто использовать ^[\w.]+ Для сопоставления AZ, az, 0-9 и _