Отправляет email-рассылки с помощью сервиса Sendsay

[TC] И снова регекспы...

Vande omentaina, Tiflocomp!
Никак у меня не получается с ними совладать(((
Есть простенький регексп для логина: имя начинается с буквы, в
середине содержит буквы, цифры и подчёркивание, кончается буквой или
цифрой. От 3 до 20 символов.
Пишу вот такой тест:
<html>
<head>
<title>RegExp test</title>
<script type="text/javascript">
function test (uinput) {
var re=/^[a-z].[a-z0-9_]{1,17}[a-z0-9]$/i;
return re.test (uinput);
}
function submitForm () {
alert (test (document.getElementById("uinput")));
return false;
}
</script>
</head>
<body>
<form action="" method=post onSubmit="return submitForm ();">

<input type=text name=uinput id="uinput" size=40>

</form>
</body>
</html>

Всегда возвращает false.
Вопрос: что я делаю не так?

Ответить   "Anarendil E. M. Elensule" Thu, 26 Nov 2009 01:31:37 +0200 (#946994)

 

Ответы:

Здравствуйте, Anarendil.

Нужны кавычки символьного выражения.

Ответить   Thu, 26 Nov 2009 13:00:59 +0300 (#947407)

 

Приветствую всех.

Не нужны. Здесь слеши обозначают регулярное выражение как сущность.
Если вы возьмете его в кавычки, то получите строковый литерал и не более того,
но вы тем самым можете попасть в ловушку, поскольку многие методы javascript,
принимающие RegExp, в качестве тех же аргументов принимают и строки.
Иными словами, ошибки в синтаксисе не будет, но логика работы изменится.

Успехов. Анатолий.

Ответить   "i_chay" Thu, 26 Nov 2009 17:26:27 +0400 (#947619)