JavaScript Highlight选择一个终点

问题描述 投票:0回答:1

我正在研究JavaScript的高亮功能。该函数的思想是能够突出显示字符串的特定部分。我正在处理的字符串的示例将是诸如“ AAEE134RTYGF631HJ”之类的东西,但仅需要匹配诸如“ EE”或“ RTYGF”之类的部分。

我有一个荧光笔功能,可以选择突出显示的位置,但是我无法控制它在字符串中的结束位置。在起点之后,它将仅突出显示整个字符串。我的问题是代码是否有办法使我要发生的事情真正发生?还是我需要一种新方法?

<!DOCTYPE html>
<html>
    <head>
        <style>
        .highlight {
        background-color: yellow;
        }
        </style>
    </head>
<body>
<!-- <button onclick="highlight('e')">Highlight</button> -->
<label for="textbox0">Word One</label><br>
<input type="text" id="textbox0" name="textbox0"><br>
<button type="button" onclick="getInput0(textbox0,this)">Check</button><br><br>

<p id="entry0"></p><br>

<script>
    // Highlights any code in a given line.
    function highlight(text,id,begin,end) {

        var inputText = document.getElementById(id);
        var innerHTML = inputText.innerHTML;
        var index = innerHTML.indexOf(text)+begin;
        if (index >= 0) { 
            innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
        inputText.innerHTML = innerHTML;
        return string;
        }
    }
    function verify(string,num,maxLen){
        var begin=1;
        var end=5;
        var id="entry"+num;
        // parameters to test for go here.
        var len=string.length;
        if(len>maxLen)
        {
            document.getElementById(id).innerHTML = string;
            highlight(string,id,begin,end);  
        }
        else
        {
            document.getElementById(id).innerHTML = string;
        }
    }
    function getInput0(button,el){

        var button = document.getElementsByTagName("INPUT")[0].getAttribute("name");
        var string = document.getElementById(button).value; 
        var num=0
        var maxLen=5
        verify(string,num,maxLen)
    }
</script>

</body>
</html> 

我对Javascript还是很陌生,所以我不确定什么被认为是“最佳实践”,如果这非常明显,我深表歉意。

javascript highlight
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.