@dobrok, спасибо больше.. Теперь даже без ресурсов можно.. Просто раньше я даже эту галочку вроде как не трогал, но всё равно через повторку работало..-.. А щас нет.
Как уменьшить длину строки
-
@weq
Навскидку вижу 2 решения:- Дергаем первые 5 слов из строки регуляркой
([\S]+\ [\S]+\ [\S]+\ [\S]+\ [\S]+)[\s\S]+
Число повторов " [\S]+" равно количеству слов, которые необходимо извлечь.
Возможно (теоретически) составить регулярку попроще. - Парсим строку по разделителю пробел и собираем новую строку заново из нужного количества элементов полученного списка.
- Дергаем первые 5 слов из строки регуляркой
-
@weq said in Как уменьшить длину строки:
о такие регулярные поженимся
Не. Жениться пока не готов.
@weq said in Как уменьшить длину строки:
А если в строке будет меньше слов чем в регулярке прописано, будет ошибка?
Технической ошибки не будет. Просто регулярка ничего не дернет. Т.е. ошибка будет логической. Тут нужно написать более мощную регулярку, которую лично мне скилов написать не хватает ) Буду рад, если гуру помогут =)
Либо используйте второй, предложенный мной способ. Вы сможете подсчитать количество полученных слов и определить действия в зависимости от полученного значения. -
@weq
если по кол-во символов, то вот: в выполнить код добавляйте[[TEXT]] = "Надо скопировать абзац или несколько текста" [[RES]] = String([[TEXT]]).slice(0,30)Регуляркой тоже самое:
.{0,30}А по поводу слов, у @xclsv хороший пример
^[^\s]*$ //соответствует одному ключевому слову ^[^\s]*\s[^\s]*$ //соответствует фразе из 2 ключевых слов ^[^\s]*\s[^\s]* //соответствует фразе, содержащей по крайней мере 2 кючевых слова ^([^\s]*\s){2}[^\s]*$ //соответствует фразе из 3 ключевых слов ^([^\s]*\s){4}[^\s]* //соответствует фразе из 5 и более ключевых слов -
@uraabk said in Как уменьшить длину строки:
^[^\s]$ //соответствует одному ключевому слову
^[^\s]\s[^\s]$ //соответствует фразе из 2 ключевых слов
^[^\s]\s[^\s]* //соответствует фразе, содержащей по крайней мере 2 кючевых слова
^([^\s]\s){2}[^\s]$ //соответствует фразе из 3 ключевых слов
^([^\s]\s){4}[^\s] //соответствует фразе из 5 и более ключевых словСлушай, подскажи, а можно такую регулярку составить, которая дернет не более 5 первых слов в строке?
Ну т.е. если в строке больше 5 слов, то дергать 5 слов. Если меньше, то всю строку.
Или только через предварительную проверку? -
@xclsv said in Как уменьшить длину строки:
Буду рад, если гуру помогут =)
Надо дополнительный бейджи на форуме сделать и выдавать за заслуги, ну или проступки
:D.
Можно чуть подправить вашу регулярку:
((?:[\S]+\ ){1,5})[\s\S]+так проще регулировать количество возможных слов от одного, до пяти {1,5}.
Но я бы проще обрезал строку на 30 символов, затем обрезал полученную строку на последнем пробеле, чтобы убрать обрубки слов:
[[NEW_TEXT]] = [[TEXT]].slice(0, 30).split(" ").slice(0,-1).join(" ")Вот тестовый скрипт
-
@fox said in Как уменьшить длину строки:
Надо дополнительный бейджи на форуме сделать и выдавать за заслуги, ну или проступки
Давно надо было такое реализовать. А за большую помощь (к примеру разработку полезного модуля) выдавать премиум или хорошую скидку)
