我按照以下格式从服务器向 Firefox 浏览器发送一个字符串:
"KEY:a1 VAL:123.45"
这个字符串可以包含很多这样的记录。
这是我编写的代码:
var e;
var reply = request.responseText;
var txt = "", tab, key = "", val = "";
var x = reply.getElementsByTagName("KEY:");
for(i = 0; i < x.length; i++)
{
txt = x[i].childNodes[0].nodeValue; // "KEY:%c%c VAL:%.2F"
tab = txt.split(":");
key = "table_" + tab[1].substring(0,1);
val = tab[2];
e = document.getElementById(key);
e.innerHTML = val;
e.style.display = "block";
}
val
显示 "KEY:a1 VAL:123.45"
而不是预期的 "123.45"
(当然还有 key
变量也是错误的,不匹配表格单元格,只是选择表格中的第一个单元格)。
我什至不知道如何显示 key
和 val
值(document.write() 和alert() 不执行任何操作,我也不知道如何显示在 Firefox 中跟踪此代码)。
欢迎任何想法、提示、更正或代码示例,但请不要推荐使用任何库,我想用很少的代码来完成它。
编辑:从两条评论中,我了解到有两种不同的方法可以继续:要么使用 DOM 对象和 HTML 标签,要么使用“字符串”。我更愿意继续使用上面的格式,所以请指导我使用“字符串”解决方案。谢谢!
最佳答案
您可以使用简单的正则表达式从字符串中提取信息:
var value = "KEY:a1 VAL:123.45",
pattern = /KEY:(\S+) VAL:(.+)$/g;
var result = pattern.exec(value);
// result[1] == 'a1'
// result[2] == '123.45'
就您而言,您可以使用 request.responseText
而不是 value
。
关于Javascript/DOM,解析键/值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638086/