JavaScript Выделите выбор конечной точки - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю над функцией выделения для JavaScript. Идея функции состоит в том, чтобы иметь возможность выделить определенный c раздел строки. Примером строк, с которыми я имею дело, может быть что-то вроде «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, поэтому я не уверен, что будет считаться "наилучшей практикой", и я прошу прощения, если это чрезвычайно очевидно.

...