javascript-如何使用另一个字符串作为模板从字符串中提取数据?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何使用另一个字符串作为模板从字符串中提取数据?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
我正在寻找一种有效的方法来使用另一个字符串作为模板从一个字符串中一般提取数据.伪代码:
var mystring = "NET,1:1,0,ipv4,192.168.1.7,255.255.255.0,192.168.1.1";
var mytemplate = "NET,[address],[lock_state],[ip_type],[ip],[netmask],[gateway]";
var result = mysteryMethod(mystring,mytemplate);
result:
{
address: '1:1',
lock_state: '0',
ip_type: 'ipv4',
ip: '192.168.1.7',
netmask: '255.255.255.0',
gateway: '192.168.1.1'
}
在这种情况下,有一个逗号定界符,但并非所有字符串都将定界或具有不同的定界符.要解析的字符串都不会包含方括号.使用正则表达式是否可能和/或明智?在这种情况下,速度至关重要.与往常一样,非常感谢您的帮助.
解决方法:
一种解决方法是在http://jsfiddle.net/CrossEye/Kxe6W/
var templatizedStringParser = function(myTemplate, myString) {
var names = [];
var parts = myTemplate.replace( /\[([^\]]+)]/g, function(str, name) {
names.push(name);
return "~";
}).split("~");
var parser = function(myString) {
var result = {};
remainder = myString;
var i, len, index;
for (i = 0, len = names.length; i < len; i++) {
remainder = remainder.substring(parts[i].length);
index = remainder.indexOf(parts[i + 1]);
result[names[i]] = remainder.substring(0, index);
remainder = remainder.substring(index);
}
result[names[names.length - 1]] = remainder;
return result;
};
return myString ? parser(myString) : parser;
};
你可以这样使用
console.log(templatizedStringParser(myTemplate, myString));
或这个:
var parser = templatizedStringParser(myTemplate);
console.log(parser(myString));
几乎可以肯定那里有一些杂物,就像我匆忙这样做一样.使用“?”可能对您不起作用.如果您遇到边界问题,可能还会有其他问题,但它可能涉及很多情况.
内容总结
以上是互联网集市为您收集整理的javascript-如何使用另一个字符串作为模板从字符串中提取数据?全部内容,希望文章能够帮你解决javascript-如何使用另一个字符串作为模板从字符串中提取数据?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。