Я пытаюсь использовать RegExp
в Javascript
(в частности, функцию match
), чтобы найти появление предложения и слово внутри этого предложения в теле HTML. Ниже некоторые псевдо-код у меня есть:match() в body возвращает нечетный результат
<!DOCTYPE html>
<html>
<body id="hello">
<p id="demo">Click the button to display the matches.</p>
<div> <input type="button" value="search" onclick="myFunction('<p id="demo">Click the button to display the matches', 'button')" />Try it </div>
<script>
function myFunction(sentence, word)
{
//var str="The rain in SPAIN stays mainly in the plain";
//var toMatch = "The rain in SPAIN stays mainly in the plain";
var r = new RegExp(word, 'g');
var oldHTML = document.getElementById("hello").innerHTML;
var n=oldHTML.match(r);
alert("no. of matches = " + n.length);
document.getElementById("demo").innerHTML=n;
}
</script>
</body>
</html>
В вышеприведенном HTML, есть только одно вхождение фразы и одно слово «кнопка», но число запросов = 4 и n = button,button,button,button
.
Мои вопросы:
1. Почему этот RegExp приводит к 4 поисковым запросам?
2. Как я могу найти раздел HTML body
, так что ответ, который я получаю, верен?
# 1 '
Нажмите button', # 2' <тип = "кнопка" ввод ',' # 3 Quot;> Нажмите button', # 4 ' 'кнопки',) ' – Andreas
вы правильно получив ответ как 4. Есть 4 вхождения кнопки слова. 1.> Нажмите кнопку 2. Введите тип = "кнопка" 3. Нажмите кнопку 4., 'button') – SHANK
@Andreas: достал. Если бы я искал предложение вместо этого, я получаю одно совпадение. Как я могу получить начальный индекс матча? – Sriram