如何获取给定事件的上一行号

时间:2014-05-15 10:16:14

标签: javascript html

这里我使用JavaScript来查找给定事件的上一个行号。

我在这里有这个文字

iriwr a
!!!!!!!!!
jaljflsjfa
fasjfkjaslf
!!!
ldjadada
!!!!!!!!
mlakifkqwoieqkwe
dalkdajsdja
!!!!!!!!!

在本文中,我有字符,现在我必须获取前面有5个或更多感叹号的行号。

例如:

第5行(从1开始)只有3个!那不应该算。 只有在超过5的情况下才能计算代码!然后找出以前的行号。

,即在第2行,第7行,第10行中有超过5个s,因此它应该将之前的行号设为1,6,9。

我该怎么做?

这就是我的尝试。

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css">
<script>
function getnum() {
var str = document.getElementById('strin').innerHTML;
var n = str.search("!!!");
document.getElementById("demo").innerHTML = n;
}
</script>
<body>

<textarea rows="12" cols="15" id="strin">
iriwr a
!!!!!!!!!
jaljflsjfa
fasjfkjaslf
!!!!!!!!
ldjadada
!!!!!!!!
!!!!!!
mlakifkqwoieqkwe
dalkdajsdja
!!!!!!!!!
</textarea>

<button onclick="getnum()">Get line number</button>
<p id="demo"></p>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

function getnum() {
    var str = document.getElementById('strin').innerHTML;
    var arr = str.split("\n");
    var lines="";
    for(i=0;i<arr.length;++i){
        if(arr[i].search("!!!!!")!=-1){
          lines+=" "+i;
        }
    }

    document.getElementById("demo").innerHTML = lines;
 }

试试这个功能。它将返回以空格分隔的行号,但您可以按照自己喜欢的方式进行格式化。