2012-06-12 5 views
-4

Я использовал его в C#Как использовать регулярные выражения в Javascript?

var validString = new Regex(@"^[a-z][a-z\[email protected]#$%\^&*()\-+]{0,7}$(?<=\d\D+)", RegexOptions.Compiled); 

Я пытаюсь реализовать следующие правила для создания пароля

•Not have upper-case letters. 
•Begin with a letter. 
•Have at least 1 digit(s) not at the beginning and end. 
•Have up to 8 alphanumeric 
•Does NOT have any symbols like @#$ characters (symbols like [email protected]#$%^&*()-+).

Любая помощь будет оценена

+0

Что не работает? – woz

+0

Я не знаю, как его использовать Javascript –

+1

JavaScript не имеет заглядывания, это одна проблема и регулярное выражение Google JavaScript, чтобы узнать, как использовать регулярные выражения в JavaScript. :) – epascarello

ответ

2

Почти идентичны, за исключением:

  • new RegExp вместо new Regex
  • Нет @ перед строкой
  • Вы не можете использовать константы для опций, только строка с опцией букв
  • Вы не может использовать lookbehinds.

Также можно использовать регулярное выражение буквального:

var validString = /^[a-z](?=[a-z]*[0-9])[a-z0-9]{0,6}[a-z]$/; 

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

2

То же самое регулярное выражение можно использовать (при условии его действует). Что же касается, как использовать это показано ниже:

var re = /^[a-z][a-z\[email protected]#$%\^&*()\-+]{0,7}$(?<=\d\D+)/; 
var test = re.test(password); // will store a bool value whether the password is valid or not. 
+2

Не работает. В регулярных выражениях JS нет lookbehind. –

+1

Вот что я точно собирался рассказать. –