Javascript / Jquery получить номер строки из строки - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть текстовая область.Я бы посчитал строки моего ввода.

Моя простая функция countLines работает со всеми другими регулярными выражениями, но не в этом случае.

function countLines(str){
  return (str.split("\r\n|\r|\n").length -1);
}

alert( countLines($("#myTextArea").html() );

Почему его возвращение равно 0, даже если у меня несколько строктекста?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Вы передаете строку в .split() вместо регулярного выражения.Используйте косую черту (не кавычки), чтобы разделить ваше регулярное выражение: /\r\n|\r|\n/.

function countLines(str){  
  return (str.split(/\r\n|\r|\n/).length -1);  
}

Но вычитание 1 из длины будет правильным, только если ваша текстовая область пуста.В случае, если ваша текстовая область содержит:

line 1
line 2

Будет только один \n.Вызов .split() вернет массив из двух элементов, а countLines() вернет 1, когда на самом деле две строки, верно?

2 голосов
/ 07 мая 2012

Не используйте сплит. Вот еще лучший способ, поскольку вы, вероятно, будете работать с элементом DOM. В приведенном ниже примере подсчитываются строки кода в элементе «pre». Замените «pre» на любой требуемый селектор. Наслаждайтесь.

var count = $('pre').text().match(/\r?\n|\r/mg).length;
1 голос
/ 28 февраля 2012

Возможно, вам нужна форма регулярного выражения.

function countLines(str){
   return (str.split(/\r?\n|\r/).length);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...