Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Разбор строки (https://javascript.ru/forum/dom-window/6245-razbor-stroki.html)

motoroller 19.11.2009 21:36

Разбор строки
 
Добрый вечер, есть такой вопросик, хочу сделать теги для картинок,
видел на яндексе клёво сделано, вводишь в строку слова ( по видимому сепаратор запятая ии точка с запятой) и он разбирает строку, если надо удаляет дубликаты и выводит в другуб строку, подскажите как реализовать ?

Заранее спасибо

Gozar 20.11.2009 09:55

function Razbor(txt){
var arr = txt.split(",")
... дальше убираем дубликаты: (запрос в гугл:javascript array дубликаты)
var newtxt = removeDuplicateElement(arr)
document.getElementById('drugaya_stroka').value = newtxt
}

motoroller 20.11.2009 10:38

А если в тексте встречаются одновременно два сепаратора ?

Gozar 20.11.2009 12:20

http://javascript.ru/String/match
с параметрами ig, что-то типа: /(.*)[,;](.*)/ig
если параметров всего два ,; можно сначала split(",") а потом по полученному массиву for split(";"), это если с регулярками плохо, но лично мне регулярка лаконичнее

Kolyaj 20.11.2009 12:22

txt.split(/,|;/)

motoroller 20.11.2009 12:33

просто respect !!!
Спасибо подошло :)

Riim 20.11.2009 14:37

Не на js, но суть видна, а именно: все кроме \\-\\wа-я становится разделителями.

foreach (string word in Regex.Replace(searchText, "[^\\-\\wа-я]+", " ", RegexOptions.Compiled | RegexOptions.IgnoreCase).Trim().Replace("_", "[_]").Split(' '))
{

}

Gozar 20.11.2009 14:54

str.match(/([^,;])+/ig)

Но у Kolyaj,
лаконичнее :)

motoroller 20.11.2009 15:26

Вот данный ворпос решён, но тут возник по ходу ещё один,
я слова отфильтровываю, всё с ними супер, делаю trim если со словами есть пробелы, но тут возникла ещё проблема, у меня добавляются пустые пробелы, если в них есть несколько пробелов от 2 и более, скажите как проверить, что запись не состоит из одник пробелов....

Спасибо большое

Riim 20.11.2009 15:30

motoroller, в моем варианте это как раз предусмотрено. Если, конечно, я верно понял.


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