我在 stackoverflow 上进行了很多搜索,发现非常有趣,其中包括:
和 Javascript 正则表达式替换文本 div 和 < >
但事实证明,我无法真正解析我的目标,即用数据类型属性替换 div 并删除字符串上的数据类型属性。
我是这样做的。
//Doesn't work with multi lines, just get first occurrency and nothing more.
// Regex: /\s?data\-type\=(?:['"])?(\d+)(?:['"])?/
var source_code = $("body").html();
var rdiv = /div/gm; // remove divs
var mxml = source_code.match(/\S?data\-type\=(?:['"])?(\w+)(?:['"])?/);
var rattr =source_code.match(/\S?data\-type\=(?:['"])?(\w+)(?:['"])/gm);
var outra = source_code.replace(rdiv,'s:'+mxml[1]);
var nestr = outra.replace(rattr[0],'');// worked with only first element
console.log(nestr);
console.log(mxml);
console.log(rattr);
在这个 HTML 示例页面上
<div id="app" data-type="Application">
<div data-type="Label"></div>
<div data-type="Button"></div>
<div data-type="VBox"></div>
<div data-type="Group"></div>
</div>
对那个具体的事情有任何启示吗?我可能会遗漏一些东西,但我真的不知道,否则这里没有剩余空间。
我创建了一个 jsFiddle 来显示,只需打开浏览器的控制台即可查看我的结果。
随意回答 jsfiddle 或对我的正则表达式的更好解释,为什么它会失败。
在我得到任何反馈之前,我会继续尝试看看我是否可以设法替换文本。
提前致谢。