私はpaternのhtmlページを解析する必要があります。私は一致が配列に読み込まれると仮定しています。そして、私は配列の内容を出力する必要があります。RegEx - パターンのhtmlページを解析する方法(JavaScript)
<script language="JavaScript" type="text/javascript">
var adBookmarkletData=[
'<html><head><title>MYSA Yahoo! APT Debugger</title></head><body><center><div style=\"background:#ccc;color:#000;width:350px;text-align:left;padding:15px;border:2px #000;\">','<b>MYSA Yahoo! APT Debugger:</b><br /><hr />',
'<b>URL:</b> '+document.location.href+'<br />',
'<b>Pub ID:</b> '+window.yld_mgr.pub_id+'<br />',
'<b>Site Name:</b> '+window.yld_mgr.site_name+'<br />',
'<b>Content Topic ID List:</b> '+window.yld_mgr.content_topic_id_list+'<br />',
'<b>Site Section Name List:</b> '+window.yld_mgr.site_section_name_list+'<br />'
];
for(i in window.yld_mgr.slots){
adBookmarkletData.push('<b>Ad:</b> ('+i+')<b>Category:</b>('+window.yld_mgr.slots[i].cstm_content_cat_list+')<br />');
};
//Here my problem starts
var myRegExp = new RegExp("place_ad_here\('(.*?)'\)");
//Here my Problem ends
adBookmarkletData.push(myRegExp.exec(document.innerHTML));
adBookmarkletData.push('</div></center></body></html>');
function createAptDebugger(){
for (i in adBookmarkletData){
document.write(adBookmarkletData[i]);
}
};
void(createAptDebugger());
</script>
RegExパターンは、サンプルコードに対してオンラインテスタで動作します。しかし、ここでの結果はnullです。 私は、RegExをHTMLページに対して指示して、それを配列から出力する方法を知りません。
わかりやすくするため、htmlにはこのようなタグが本体にあります。このようになります
<script type="text/javascript">yld_mgr.place_ad_here('A728');</script>
<script type="text/javascript">yld_mgr.place_ad_here('ASPON120');</script>
<script type="text/javascript">yld_mgr.place_ad_here('ROLLOVER');</script>
<script type="text/javascript">yld_mgr.place_ad_here('A300');</script>
<script type="text/javascript">yld_mgr.place_ad_here('Middle1');</script>
<script type="text/javascript">yld_mgr.place_ad_here('B300');</script>
結果:
place_ad_here('A728')
place_ad_here('ASPON120')
place_ad_here('ROLLOVER')
place_ad_here('A300')
place_ad_here('Middle1')
place_ad_here('B300')
かなり多く、私はそれらを表示する方法です。
事前のおかげで...
また、JavaScriptではコンストラクタの代わりにRegExデリミタを使用できます。 新しいRegexp()の代わりに/place_ad_here\('(.*??????????? –
)だから、私はソイゴーズの提案を試みました。しかし、喜びはありません。それは私に構文エラーを与える。 var myRegExp = new RegExp( "place_ad_here \( '(。*?)' \)"); while(var match = myRegExp.exec(document.innerHTML)){adBookmarkletData.push(match); }; –
申し訳ありませんが、私は例を実行しませんでした。構文エラーが何であれ修正して何が起こるか確認してください –