Вот мой дикий и странный псевдо-код. Кто-нибудь знает, как сделать это реальным?Sanitize вставляемый текст из MS-Word
фона:
Этот динамический контент происходит от CKEditor. И многие люди вставляют в него контент Microsoft Word. Не стоит беспокоиться, если я просто называю атрибут нетронутым, он загружается красиво. Но уловка в том, что я хочу, чтобы это было всего 125 символов. Когда я добавляю к нему усечение, все скрипты Microsoft Word начинают появляться. Затем я добавил simple_format, и дезинфицирую, и усекаю, и даже заставил мой контроллер начать определять определенные переменные, которые 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...
Ум ... MSWord мусор? –
Можете ли вы дать немного больше информации о том, что вы пытаетесь сделать здесь? –
Добавленный фоновой контекст – Trip