В Jquery AND Rails, как получить видимое количество символов в строке? - PullRequest
2 голосов
/ 08 сентября 2011

Допустим, у вас есть строка со встроенными ссылками и тегами:

 This string has <a href="http://www.google.com">some links</a> inside it.

Тогда видимая пользователю строка:

 This string has some links inside it.

Полная строка содержит 73 символа, а видимая - всего 37 символов. Я хотел бы иметь возможность как в jQuery, так и в Rails получать количество символов для строк, считающих только видимые символы. (jQuery такой, что я мог бы указать количество живых символов в поле ввода и Rails для проверки и усечения).

Кто-нибудь знает что-нибудь, что может помочь? Конечно, есть какой-то способ сделать это ..

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Это отвечает только на половину вашего вопроса в JavaScript.

В jQuery, если у вас есть такая строка -

var text = 'This string has <a href="http://www.google.com">some links</a> inside it.'

Тогда вы можете сделать что-то вроде -

$('<div></div>').append(text).text()

, что даст вам -

В этой строке есть несколько ссылок.

Так что $('<div></div>').append(text).text().length получит длину строки безHTML-разметка.

2 голосов
/ 08 сентября 2011

Вы можете использовать синтаксический анализатор XML, такой как Nokogiri, для форматирования отображения вашего вывода:

a = 'This string has <a href="http://www.google.com">some links</a> inside it.'
Nokogiri::HTML.parse(a).inner_text

=> "This string has some links inside it." 

"This string has some links inside it.".length
=> 37

Больше информации о Нокогири здесь: http://nokogiri.org/

...