0

RegExpin Javascript(具体的には関数)を使用しmatchて、HTML 本文の文とその文内の単語の出現を見つけようとしています。以下は、私が持っている疑似コードです。

<!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=&quot;demo&quot;>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 では、文と 'button' という単語が 1 回だけ出現しますが、検索数 = 4 とn = button,button,button,button.

私の質問:
1. その RegExp で 4 回の検索が行われるのはなぜですか?
2. HTML セクションを検索してbody正しい回答を得るにはどうすればよいですか?

4

2 に答える 2

0
  1. 他の人がすでに述べたように、ユーザーに表示されるテキストだけでなく、html マークアップ全体を検索するため、4 回出現します。
  2. より良い結果を得るには、innerText代わりにプロパティを使用してください。innerHTML
于 2013-09-11T11:08:09.513 に答える
0

jQuery の text 関数を使用して body 要素のテキストを取得し、そこから検索できます。

e.g 
bodyElement = $("body");
bodyText = bodyElement.text();
于 2013-09-11T11:31:15.190 に答える