Вот мой дикий и дурацкий псевдо-код.Кто-нибудь знает, как это сделать?
Справочная информация:
Этот динамический контент исходит от ckeditor.И многие люди вставляют в него содержимое Microsoft Word.Не беспокойтесь, если я просто назову атрибут нетронутым, он загружается довольно.Но подвох в том, что я хочу, чтобы он был сокращен до 125 символов.Когда я добавляю к нему усечение, все сценарии Microsoft Word начинают появляться.Затем я добавил simple_format, sanitize и truncate, и даже заставил мой контроллер начать определять конкретные переменные, которые MS создаст, и gsub их.Но их слишком много, и это кажется ужасно грязным способом для достижения этой цели.Таким образом, так!Понимая, что само по себе, это чисто.Я подумала, почему бы просто не нарезать его.Тем не менее, текст слова Microsoft становится пустым, но по-прежнему занимает свою пронумерованную позицию в строке.Таким образом, я придумал это (вероятно, ужасное) решение ниже.
Это в три этапа.
- Когда текст анализируется, он не отображает мусор MSWord.Но этот текст все еще занимает числовую позицию в выражении среза.Поэтому я хочу использовать регулярное выражение, чтобы найти первый фактический символ.
- Возьмите этот символ и выясните, какова его номерная позиция в общей строке.
Используйте оператор среза длявырезать его из.
def about_us_truncated
x = self.about_us.find.first(regExp representing first actual character)
x.charCount = y
self.about_us[y..125]
end
Единственная другая идея, которую я получил, - это выражение регулярного выражения, которое позволяет ему явно вырезать только реальные символы, например:
about_us([a-zA-Z][0..125])
, но это определенно не так, как написано.
Вот пример текста MS Word нежелательной:
≪! [If Gte Mso 9]>≪Xml>≪Br /> ≪O:Office Document Settings>≪Br /> ≪O:Allow Png/>≪Br /> ≪/O:Off...