gpt4 book ai didi

文本区域输入上的 JavaScript 正则表达式

转载 作者:行者123 更新时间:2023-11-29 10:34:25 26 4
gpt4 key购买 nike

我正在尝试从文本区域字段中输入的 Apache 日志文件中提取所有 IP 地址。我正在使用正则表达式来提取 IP 地址。我想看到屏幕上打印的所有 IP 地址。我不明白我做错了什么。请帮忙

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<title>RegEx_example</title>
</head>
<body style = "background-color: lightgrey">
<center>
<h3><u>Log Miner</u></h3>
<br /><hr />
<h5>Paste your Apache log file in the box below and click on Mine!</h5>

<textarea rows="25" cols="200" form="mine_log" id = "logs">

</textarea>

<form id = "mine_log" method = "" onsubmit="parseLogs(document.getElementById('logs').value)">
<input type = "submit" value = "Mine!!" />
</form>
<script language="JavaScript" type="text/javascript">
function parseLogs(text) {
var re = new RegExp("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$");
var myArray = re.exec("text");
document.write(myArray.toString());

}
</script>
</center>
</body>
</html>

最佳答案

你需要:

  • 使用正则表达式文字来避免双反斜杠转义速记类(现在,“\.” 转换为 .)
  • 从模式中删除 anchor (即 ^$)
  • 在正则表达式中添加一个全局修饰符(/g)
  • 对正则表达式使用 String#match()(如果您不需要使用捕获组捕获的值,否则,您需要运行 RegExp#exec 在一个循环中收集那些)。

function parseLogs(text) {
var re = /([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/g;
var myArray = text.match(re);
document.write("<pre>"+JSON.stringify(myArray, 0, 4) + "</pre>");
}
<h5>Paste your Apache log file in the box below and click on Mine!</h5>

<textarea rows="5" cols="200" form="mine_log" id = "logs">
12.34.56.76
45.45.34.24
</textarea>
<form id = "mine_log" method = "" onsubmit="parseLogs(document.getElementById('logs').value)">
<input type = "submit" value = "Mine!!" />
</form>

请注意,如果您不需要捕获值,您甚至可以从您的模式中删除 ()

关于文本区域输入上的 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com