Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярка и графические символы UTF-8 (https://javascript.ru/forum/misc/33727-regulyarka-i-graficheskie-simvoly-utf-8-a.html)

tazododu 05.12.2012 17:28

Регулярка и графические символы UTF-8
 
Всем привет!
Имеется необходимость в строке выявлять и убирать все графические символы наподобии этих ☨ ☩ ☪ ☫ ☬ ☭ ☮ и т.д.
Пробовал по разному, да все безрезультатно.
Это
(/[[:graph:]]/).test('⊕⊖⊗');
не срабатывало.
Что посоветуете?

Amphiluke 05.12.2012 18:01

Выкосите нежелательные символы по их кодам (диапазонам кодов)

var str = "Всякие графические значки: ☨ ☩ ☪ ☫ ☬ ☭ ☮; допустимые символы: у Ψﮖ ६ ऒ ༃ 걜 ぼ ₩ Ѩ ∰";
alert(str.replace(/[\u2600-\u27BE]/g, ""));

schmetterling 05.12.2012 18:51

tazododu, либо можно определить список допустимых символов (этот не претендует на полноту:

var reg= /[^\s\d\wа-яА-Яё`.\/\\?,-:;!]/g;
var str= "Всякие графические значки: ☨ ☩ ☪ ☫ ☬ ☭ ☮; допустимые символы: у Ψﮖ ६ ऒ ༃ 걜 ぼ ₩ Ѩ ∰; А ещё цифры: 123, 456; разные знаки препинания, latinskie bukvy, и так далее";
alert(str.replace(reg, ""));

tazododu 06.12.2012 14:14

Цитата:

Сообщение от Amphiluke (Сообщение 219740)
Выкосите нежелательные символы по их кодам (диапазонам кодов)

var str = "Всякие графические значки: ☨ ☩ ☪ ☫ ☬ ☭ ☮; допустимые символы: у Ψﮖ ६ ऒ ༃ 걜 ぼ ₩ Ѩ ∰";
alert(str.replace(/[\u2600-\u27BE]/g, ""));

А не подскажете, как узнать точно диапазон? Откуда вы взяли \u2600-\u27BE?

tazododu 06.12.2012 14:18

Цитата:

Сообщение от schmetterling (Сообщение 219756)
tazododu, либо можно определить список допустимых символов (этот не претендует на полноту:

var reg= /[^\s\d\wа-яА-Яё`.\/\\?,-:;!]/g;
var str= "Всякие графические значки: ☨ ☩ ☪ ☫ ☬ ☭ ☮; допустимые символы: у Ψﮖ ६ ऒ ༃ 걜 ぼ ₩ Ѩ ∰; А ещё цифры: 123, 456; разные знаки препинания, latinskie bukvy, и так далее";
alert(str.replace(reg, ""));

Перечислять слишком много прийдется, необходимо чтобы проходили украинские Ґ, Ї, всякие ä, é и тому подобные буквы.

Amphiluke 06.12.2012 15:40

Цитата:

Сообщение от tazododu
А не подскажете, как узнать точно диапазон? Откуда вы взяли \u2600-\u27BE?

Таблица символов в помощь.

tazododu 06.12.2012 19:25

Цитата:

Сообщение от Amphiluke (Сообщение 219881)

Спасибо за помощь!


Часовой пояс GMT +3, время: 00:29.