次のコードがあります。rubular.comのようなWebサービスを開発したいのですが、正確な正規表現コマンドがわかりません。
print_rで表示したときに、配列構造のようにphpのように結果が返されるようにしたいと思います。
アプリはhttps://github.com/WILL-I-AM/RegEx/blob/master/RegEx.phpでも入手できます
これは、preg_match_allを返さないため、クラックが発生する場所です。
var regex = new RegExp(document.getElementById('regex').value, document.getElementById('regex_params').value);
var result = regex.exec(document.getElementById('string').value);
preg_match_allがphpで結果を返すようにするにはどうすればよいですか?
アプリコード:
<html>
<head>
<title>RegEx</title>
<script type="text/javascript">
function timeout_trigger() {
document.getElementById('result').innerHTML = document.getElementById('regex').value + ' ' + document.getElementById('regex_params').value + ' ' + document.getElementById('string').value;
var regex = new RegExp(document.getElementById('regex').value, document.getElementById('regex_params').value);
var result = regex.exec(document.getElementById('string').value);
document.getElementById('result').innerHTML = result;
}
document.onkeyup = KeyCheck;
function KeyCheck()
{
if((document.getElementById('regex').value!='')&&(document.getElementById('regex_params').value!='')&&(document.getElementById('string').value!=''))
{
setTimeout('timeout_trigger()', 1000);
}
else document.getElementById('result').innerHTML = "null";
}
</script>
<style type="text/css">
table
{
background-color:#eeeeee;
}
input
{
height:40px;
padding:5px 5px 5px 5px;
background-color:#000000;
border:1px solid #ffffff;
color:#ffffff;
}
textarea
{
background-color:#000000;
border:1px solid #ffffff;
color:#ffffff;
padding:5px 5px 5px 5px;
}
</style>
</head>
<body bgcolor="#000000">
<table align="center" valign="top" width="1000px" cellpadding="5px" cellspacing="5pc" border="0" bgcolor="#ffffff">
<tr>
<td colspan="4">Your regular expression:</td>
</tr>
<tr>
<td width="5px"><b>/</b></td>
<td><input type="text" name="regex" id="regex" size="135" /></td>
<td width="5px"><b>/</b></td>
<td width="20px"><input type="text" name="regex_params" id="regex_params" size="5" /></td>
</tr>
<tr>
<td colspan="2">Your text string:</td>
<td colspan="2">Match result:</td>
</tr>
<tr>
<td colspan="2" valign="top"><textarea name="string" id="string" rows="10" cols="40"></textarea></td>
<td colspan="2" valign="top"><div id="result"></div></td>
</tr>
</table>
</body>
</html>