如何在特定单词后提取内容?

时间:2013-09-10 15:13:55

标签: jquery

我在一页中有这句话。

  

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

如何在Message:和Task:

之后提取内容并存储在变量中

号码_27265U_AW_GEN_M不断变化。

4 个答案:

答案 0 :(得分: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

访问任务代码

答案 1 :(得分: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);

答案 2 :(得分:0)

var a = "Message:_27265. Task:U_AW_GEN_";


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


console.log(b);

答案 3 :(得分:0)

一种解决方案是使用javascript的split()方法。这可以在不使用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/

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