[英]How to get line number in multi-line textbox using Javascript
我正在研究基于 asp.net 的应用程序。 我正在使用多行文本框,我在 asp.net 中使用 java 脚本。我想在多行文本框中查找特定字符或文本的行号。 如何使用 Javascript 从多行文本框中获取行号?
您可以在 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
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;
}
Praveen,我在这里http://jsfiddle.net/amantur/Uk6td/2/尝试了一些HTML
。 但这并不是万无一失的。 因为如果您连续有 50 个字符(就像我们在示例中那样),但是 a 单词的长度超过 50 个字符,它将破坏所有逻辑。 此外,如果一个词在一行中放不下,它会被移动到下一行和列索引中断。 它会给你关于行的粗略概念,但在第一行之后的列的情况下非常错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.