Подтвердить что ты не робот

RegEx для соответствия "AZ, az, 0-9, _" и "."

Мне нужно регулярное выражение, которое будет позволять вводить только AZ, az, 0-9, символ _ и точку (.).

Я старался:

[A-Za-z0-9_.] 

Но это не сработало. Как я могу это исправить?

4b9b3361

Ответ 1

^[A-Za-z0-9_.]+$

С начала и до конца строки сопоставьте один или несколько из этих символов.

Edit:

Обратите внимание, что ^ и $ соответствуют началу и концу строки. Когда многострочный разрешен, это может означать, что одна строка соответствует, но не полная строка.

Используйте \A для начала строки и \z для конца.

См. например: http://msdn.microsoft.com/en-us/library/h5181w5w(v=vs.110).aspx

Ответ 2

Работая над тем, что вы дали, я предположим, что вы хотите проверить, что кто-то НЕ ввел никаких писем, кроме тех, которые вы указали. Для этого вам нужно искать любые символы, кроме перечисленных:

[^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 и _