Regexp обрезать короткие слова
Добрый день.
Пытаюсь с помощью regexp вырезать из строки все слова, длина которых меньше 3х символов, а так же все символы, в общем должны остаться в идеале буквы и цифры =) В данный момент проблема решается таким образом: "А б,в гд?е ж-з и !кл мно п(р_с)т".replace(/[^A-Za-zА-Яа-я0-9 ]/ig , "").match(/[A-Za-zА-Яа-я0-9]{3,}/ig).join(" ") Есть ли способ более изящный и короткий? |
Не совсем понятно что считать словами. В вашем примере
"А б,в гд?е ж-з и !кл мно п(р_с)т" из гд?е сначала удаляется вопрос, и получается слово длиной 3 буквы. Так и должно быть? Кста, если в самом выражении уже есть и большие и маленькие буквы, зачем флаг i? |
Да, сначала строка чистится от всего лишнего, потом отбираются необходимые слова
|
replace( /[^A-Za-zА-Яа-я1-9]+([A-Za-zА-Яа-я1-9]{1,2}[^A-Za-zА-Яа-я1-9]+)*/g, " " )
З.Ы. Сорри, написал раньше, чем прочитал предыдущее сообщение, ща поправлю З.Ы.2 Если так? replace(/[^A-Za-zА-Яа-я0-9 ]/g , "").replace( /[^A-Za-zА-Яа-я1-9]+([A-Za-zА-Яа-я1-9]{1,2}[^A-Za-zА-Яа-я1-9]+)*/g, " " ) |
str="А б,в гд?е ж-з и !кл мно п(р_с)т" str=(' '+str).split(/(?:\s|,)\S{1,2}(?=\s|,)/i).join(''); alert(str) |
Цитата:
так чуть проще var string ='+DD345435' alert(/^[\+\-]?[0-9A-F]+$/i.test( string )) |
Дзен-трансгуманист,
alert(/^[+-]?[\da-f]{1,6}$/i.test( "+ddd" )); |
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 09:40. |