0

我有一页里有这句话。

请联系系统管理员。消息:_27265。任务:U_AW_GEN_M

如何在 Message: 和 Task: 之后提取内容并存储在变量中

数量_27265不断U_AW_GEN_M变化。

4

4 回答 4

3

您可以像这样使用正则表达式替换回调:

var codes = [];
var message = $("#userMessage").html();//however you're fetching the message
message.replace(/(\w+:)(\w+)/g,function(a,b,c) {
    codes.push(c);
});
console.log(codes);//["_27265", "U_AW_GEN_M"]

这段特定的代码适用于任何代码集,即如果您添加到该句子的末尾Foo:bar,则上面的结果将是["_27265", "U_AW_GEN_M", "bar"]

如果您不希望这样,请将正则表达式更改为:/(Message|Task):(\w+)/g

关联对象

var Codes = {};
var message = $("#userMessage").html();//however you're fetching the message
message.replace(/(\w+):(\w+)/g,function(a,b,c) {
    Codes[b]=c;
});
console.log(Codes);//{Message:"_27265",Task:"U_AW_GEN_M"}

然后,您可以访问任务代码,例如,使用Codes.Task

于 2013-09-10T15:40:22.597 回答
1
var a = "Message:_27265. Task:U_AW_GEN_M";
var msg = a.split(":")[1].split(".")[0];
var task = a.split(":")[2];

console.log(msg+"---"+task);
于 2013-09-10T15:20:33.143 回答
0
var a = "Message:_27265. Task:U_AW_GEN_";


var b = a.split(":");


console.log(b);
于 2013-09-10T15:15:54.670 回答
0

一种解决方案是使用split()javascript的方法。这可以在不使用 jQuery 的情况下完成,但由于您已使用 jQuery 标记了问题,因此我在我的解决方案中使用了它。

您没有指定文本的来源。所以我假设它会在网页正文中。当然,您可以将 body 更改为包含文本的任何容器。

var text = $("body").html().split('.');
var message = text[1].split(':')[1];
var task = text[2].split(':')[1];

在这里演示:http: //jsfiddle.net/teuWY/1/

编辑代码以反映其他解决方案的效率。

于 2013-09-10T15:23:07.873 回答