Очистить вставленный текст из MS-Word - PullRequest
2 голосов
/ 23 июня 2010

Вот мой дикий и дурацкий псевдо-код.Кто-нибудь знает, как это сделать?

Справочная информация:

Этот динамический контент исходит от ckeditor.И многие люди вставляют в него содержимое Microsoft Word.Не беспокойтесь, если я просто назову атрибут нетронутым, он загружается довольно.Но подвох в том, что я хочу, чтобы он был сокращен до 125 символов.Когда я добавляю к нему усечение, все сценарии Microsoft Word начинают появляться.Затем я добавил simple_format, sanitize и truncate, и даже заставил мой контроллер начать определять конкретные переменные, которые MS создаст, и gsub их.Но их слишком много, и это кажется ужасно грязным способом для достижения этой цели.Таким образом, так!Понимая, что само по себе, это чисто.Я подумала, почему бы просто не нарезать его.Тем не менее, текст слова Microsoft становится пустым, но по-прежнему занимает свою пронумерованную позицию в строке.Таким образом, я придумал это (вероятно, ужасное) решение ниже.

Это в три этапа.

  1. Когда текст анализируется, он не отображает мусор MSWord.Но этот текст все еще занимает числовую позицию в выражении среза.Поэтому я хочу использовать регулярное выражение, чтобы найти первый фактический символ.
  2. Возьмите этот символ и выясните, какова его номерная позиция в общей строке.
  3. Используйте оператор среза длявырезать его из.

    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...

Ответы [ 3 ]

1 голос
/ 24 июня 2010

Наткнулся на это

http://gist.github.com/139987

похоже, ему требуется sanitize драгоценный камень.

1 голос
/ 12 июля 2010

Технически это не прямой ответ, но он кажется наилучшим из возможных.

Чтобы предотвратить MS Word, вы должны использовать встроенное в MS CK Editor дезинфицирующее средство. Это потому, что написание регулярного выражения для него может быть очень сложным, и вы можете очень легко разбить теги пополам и уничтожить ваш сайт с ним.

В качестве обходного пути я применил принудительную вставку в виде обычного текста в CK Editor.

1 голос
/ 23 июня 2010

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

Возьмите образец текста и вставьте егов Rubular в области тестовой строки и начните строить свое регулярное выражение.У него есть отличная краткая справка внизу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...