Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бекслеш в паттерне, Как включить бекслеш в паттерн? 
:(
    Опции темы
samba777
Дата 1.3.2010, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 27.1.2010

Репутация: нет
Всего: нет



Привет !!!
Кто-нибудь баловался с паттернами??

Собрал паттерн, который должен пропускать все стандартные символы латиницы:

function check(mytext)
{
     var pattern = /^([a-zA-Z0-9\!\#\$\%\*\/\?\|^\{\}`~&'\+\=\-\_\.\,\(\)\@\"\[\]\(\)\<\>\-\№\:;\\]*)$/;

     if( pattern.test(mytext))    return 1; 
     return 0;
}

Все символы проходят нормально, а бекслеш '\' не пропускает!!!
У кого есть соображения на этот счёт --- поделитесь, если не жалко smile
PM MAIL   Вверх
smartov
Дата 1.3.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Взял твой код. Вставил в страничку. Затестировал в Firefox.
Всё нормально

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<body>

<script>
function check1(mytext)
{
     var pattern = /^([a-zA-Z0-9\!\#\$\%\*\/\?\|^\{\}`~&'\+\=\-\_\.\,\(\)\@\"\[\]\(\)\<\>\-\№\:;\\]*)$/;

     if( pattern.test(mytext)) return 1; 
     return 0;
}

window.onload = function() {
    alert(check1("aaa\\"));
}
</script>
</body>
</html>


Результат
user posted image
PM MAIL   Вверх
12345c
Дата 1.3.2010, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 6
Всего: 101



Да, samba777, видимо, Вы писали бекслеш в данных одиночный и он съедался.
(Кстати,
1. совсем не обязательно ставить в паттерне столько бекслешей,
2. Знак № - не стандартный символ латинницы (а Юникод),
3. Наверное, гораздо быстрее будет работать простое

Код

for(i=0;i<s.length;i++){
  var tst=1;
  var n=s.charCodeAt(i);
  if(n<32 && n>=128){
    tst=0;
    break;
  }
}
return tst;


или ещё попробуйте , s == encodeURIComponent(s).


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
IDVsbruck
Дата 2.3.2010, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Посмотри на форуме - вроде неплохой ...
PM MAIL   Вверх
samba777
Дата 3.3.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 27.1.2010

Репутация: нет
Всего: нет



smartov, 
12345c, 
IDVsbruck, 

Спасибо smile Разобрался
12345c,  отдельное спасибо за точные замечания, учту smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.