我在一页中有这句话。
请与系统管理员联系。消息:_27265。 任务:U_AW_GEN_M
如何在Message:和Task:
之后提取内容并存储在变量中号码_27265
和U_AW_GEN_M
不断变化。
答案 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/
编辑代码以反映其他解决方案的效率。