 |
JavaScript / HTML Создание динамической разметки страниц |
15.06.2013, 23:17
|
#1
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
regExp не понимает русь?
Есть инпут, на его изменение висит колбэк(jQuery). Там я вырезаю всё, кроме букв и цифр.
function parseIllegalData(_)
{
_.val(_.val().replace(/[^a-zA-Zа-яА-Я\s]/g,''))
}
Работает верно, но русские буквы срезает как ножом. Пробовал что-то в стиле
/[^\w\d\sА-я]/g - всеравно не пашет. Кто что может сказать?
ПС на другой странице в этой же системе есть такое выражение:
$(this).val(val.replace(/[^a-zA-Zа-яА-Я_\s.]/g,''));
И здесь все работает отлично. В чем может быть баг?
|
(Offline)
|
|
16.06.2013, 04:54
|
#2
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,366
Написано 2,476 полезных сообщений (для 6,864 пользователей)
|
Ответ: regExp не понимает русь?
Регулуярка работает корректно
http://jsfiddle.net/d2Ju2/
Попробуй записать так:
function parseIllegalData(_){ var str = _.val(); console.log(str);
str = str.replace(/[^a-zA-Zа-яА-Я\s]/g, ""); console.log(str);
_.val(str); }
Сразу будет видно где что случилось
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
16.06.2013, 05:58
|
#3
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: regExp не понимает русь?
Да и для языков используй unicode символы радиусов а не сами символы:
/[^\u0040-\u1FE0\u2C00-\uFFC0 ]+/g
Не уверен что тебе все эти радиусы нужны, но они вроди включают только письменные символы всех языков. Тестировал на китайских, японском, французском, итальянском, русском, португальском и немецком. И он ещё включает "_". Лучше затести или посмотри на Unicode таблицу и включи то что тебе от туда нужно.
Ты пытаешься оставить только письменные символы в строке?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
16.06.2013, 15:02
|
#4
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: regExp не понимает русь?
Сообщение от moka
Да и для языков используй unicode символы радиусов а не сами символы:
/[^\u0040-\u1FE0\u2C00-\uFFC0 ]+/g
Не уверен что тебе все эти радиусы нужны, но они вроди включают только письменные символы всех языков. Тестировал на китайских, японском, французском, итальянском, русском, португальском и немецком. И он ещё включает "_". Лучше затести или посмотри на Unicode таблицу и включи то что тебе от туда нужно.
Ты пытаешься оставить только письменные символы в строке?
|
function parseIllegalData(_)
{
__ = _.val()
_.val(__.replace(/[^\u0040-\u1FE0\u2C00-\uFFC0\s0-9]/g,''))
}
Помогло. Мне нужно было оставлять только буквы, цифры и пробелы
|
(Offline)
|
|
16.06.2013, 17:46
|
#5
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: regExp не понимает русь?
Сообщение от Reizel
function parseIllegalData(_)
{
__ = _.val()
_.val(__.replace(/[^\u0040-\u1FE0\u2C00-\uFFC0\s0-9]/g,''))
}
Помогло. Мне нужно было оставлять только буквы, цифры и пробелы
|
Ух, епрст, как удобно оперировать переменными с именами: _,__,___,____,____,_____ .....
|
(Offline)
|
|
16.06.2013, 21:04
|
#6
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: regExp не понимает русь?
Сообщение от RegIon
Ух, епрст, как удобно оперировать переменными с именами: _,__,___,____,____,_____ .....
|
в рабочем коде не так, не переживай
|
(Offline)
|
|
17.06.2013, 01:06
|
#7
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений (для 15,676 пользователей)
|
Ответ: regExp не понимает русь?
Раз это http://jsfiddle.net/d2Ju2/ работает а у тебя нет, подозреваю, что ты просрал кодировку js-файла.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.06.2013, 16:15
|
#8
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: regExp не понимает русь?
Сообщение от ABTOMAT
|
Да вроде нет, в UTF8 всё. Мысль такая приходила уже.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:01.
|