我有一页里有这句话。
请联系系统管理员。消息:_27265。任务:U_AW_GEN_M
如何在 Message: 和 Task: 之后提取内容并存储在变量中
数量_27265
不断U_AW_GEN_M
变化。
我有一页里有这句话。
请联系系统管理员。消息:_27265。任务:U_AW_GEN_M
如何在 Message: 和 Task: 之后提取内容并存储在变量中
数量_27265
不断U_AW_GEN_M
变化。
您可以像这样使用正则表达式替换回调:
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
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);
var a = "Message:_27265. Task:U_AW_GEN_";
var b = a.split(":");
console.log(b);
一种解决方案是使用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/
编辑代码以反映其他解决方案的效率。