想知道你是否可以帮我解决一些Javascript问题。我有一个字符串是日志消息,我想要从这个日志中抓取一个部分并在它上面显示它
例如。(请记住,日志部分不是大小写的,任何字母都可以是任何情况,也可以放在带字符串的任何地方)
$ LOG:08880xbpnd $ fhdsafidsfsd DF SD FSD F SD FSD
那是原始的日志,我想抓住08880xbpnd并摆脱其余的?怎么能在javascript中完成?
编辑
如果这是任何帮助我在perl中使用这个正则表达式来抓取其他地方的日志
/ \ $ LOG(Ⅰ'):\ S *(无|(温度(GD | MD)(\ d {1,2}){4}))\ S * \ $ /
基本上介于$ LOg之间:和$我想抓住并排除任何空格,其间的价值可能是任何或上面的
答案 0 :(得分:3)
我会使用这个正则表达式:
/\$LOG:([^$]+)\$/i
所以:
"$LOG: 08880xbpnd $ fhdsafidsfsd df sd fsd f sd fsd".match(/\$LOG:([^$]+)\$/i)
答案 1 :(得分:2)
这对我有用:
<script type="text/javascript">
// Call the function with a sample input string.
GetMyLog("$LOG: 08880xbpnd $ fhdsafidsfsd df sd fsd f sd fsd");
function GetMyLog(fullString)
{
// Create a Regex object. We want to capture all word-like characters within the $LOG and ending $
// This assumes that there will not be any more "$" characters in the trailing string.
var reg = /\$LOG:\s*([\w]+)\s*\$/;
// If the match attempt was successful, we need to get the second value in the array returned by the match.
if (fullString.match(reg))
{
alert(reg.exec(fullString)[1]);
}
}
</script>
答案 2 :(得分:0)
马修,
以下正则表达式应该在反向引用中 $ LOG:和 $ 之间提供任何内容 \ 1
\$LOG:(.*?)\$
答案 3 :(得分:0)
我不会使用正则表达式,你的情况很简单,也许,使用子字符串你可以获得速度的提升。
尝试使用以下内容:
function getToken(logline, startTag, endTag) {
return logline.substring(startTag.length,logline.indexOf(endTag,1));
}
回复评论的新版本:
function getToken(logline, startTag, endTag) {
result ="";
if ( logline.indexOf(startTag)>=0)
result= logline.substring(startTag.length,logline.indexOf(endTag,1));
return result;
}