Как получить номер строки в многострочном текстовом поле с помощью JavaScript - PullRequest
3 голосов
/ 24 января 2012

Я работаю над приложением на основе asp.net.я использую многострочное текстовое поле, и я использую java-скрипт в asp.net. Я хочу найти номер строки определенного символа или текста в многострочном текстовом поле. Как я могу получить номер строки из многострочного текстового поля, используя java-скрипт?

Ответы [ 3 ]

1 голос
/ 24 января 2012
string[] lines = Textbox1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
int lineNumberOfText = -1;
for (int lineNumber = 0; lineNumber <= lines.Length - 1; lineNumber++) {
    if (lines(lineNumber).Contains(textToSearch)) {
        lineNumberOfText = lineNumber;
        break; 
    }
}

Редактировать : Вы только что изменили заголовок с ASP.NET на javascript, поэтому этот ответ неверен, но может быть полезен в любом случае.

Вот функция Javascript , которая делает то, что вы хотите (с возможностью поиска без учета регистра):

function getLineNumber(id, text, caseSensitive) {
    var input = document.getElementById(id);
    if (input != null) {
        caseSensitive = (caseSensitive == true || caseSensitive == "true") ? true : false;
        if (!caseSensitive) text = text.toLowerCase();
        var lines = input.value.split('\n');
        for (var i = 0; i < lines.length; i++) {
            var line = caseSensitive ? lines[i] : lines[i].toLowerCase();
            if (line.indexOf(text) != -1) {
                return i;
            }
        }
    }
    return -1;
}
1 голос
/ 24 января 2012

Вы можете сделать это следующим образом в коде C #

yourInputString
// Get the text before your particular text
.Substring(0, yourInputString.IndexOf("ParticularText"))
// Get all lines
.Split('\n')
.Length

ОБНОВЛЕНИЕ: Как вы упомянули в комментарии, вы хотите сделать это в JavaScript, здесь это идет

textBoxName.Value
// Get the text before your particular text
.substring(0, textBoxName.Value.indexOf("ParticularText"))
// Get all lines
.split('\n')
.length
0 голосов
/ 24 января 2012

Правин, я что-то пробовал с HTML здесь http://jsfiddle.net/amantur/Uk6td/2/. Но это не надежно. Потому что, если у вас 50 символов подряд (как у нас в примере), но слово длиной более 50 символов, это нарушит всю логику. Также, если слово не помещается в строку, оно перемещается к следующей строке и разрывам индекса столбца. Это даст вам приблизительное представление о строке, но очень ошибочно в случае столбца после первой строки.

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