根据Javascript中的模式替换单词
Replace a word based on a pattern in Javascript
我正在将SVG转换为PNG,需要删除SVG中的angularjs属性。
<rect fill="#F9B24F" ry="5" rx="5" ng-attr-y="{{node.rectY}}" ng-attr-x="{{node.rectX}}"
ng-attr-height="{{chart.height}}" ng-attr-width="{{chart.width}}" y="10" x="20"
height="80" width="160">
我需要作为输出
<rect fill="#F9B24F" ry="5" rx="5" y="10" x="20"
height="80" width="160">
我正在尝试使用javascript中的StringReplace方法进行替换。我在控制台中尝试了以下操作,但不起作用
"ng-repeat='{{dddddsd}}' dfjdzjfhjk".replace(/ng-*'s/g," ");
如果您可以依赖Angular属性始终为ng-xyz="..."
形式,您可以这样做:
str = str.replace(/'bng-[^'s]+="[^"]*"/g, '');
如果有些是单引号,您可以使用第二个replace
:
str = str.replace(/'bng-[^'s]+='[^']*'/g, '');
显然,这是一个很大的"如果",但如果你想用正则表达式操纵类似SGML的标记,这是你必须具备的那种"如果"
示例:
var str = '<rect fill="#F9B24F" ry="5" rx="5" ng-attr-y="{{node.rectY}}" ng-attr-x="{{node.rectX}}" ng-attr-height="{{chart.height}}" ng-attr-width="{{chart.width}}" y="10" x="20" height="80" width="160">';
display("Before: " + str);
str = str.replace(/'bng-[^'s]+="[^"]*"/g, '');
display("After: " + str);
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg).replace(/&/g, "&").replace(/</g, "<");
document.body.appendChild(p);
}
不要使用正则表达式来解析DOM。(关于为什么在这里的详细答案:RegEx匹配开放标签,XHTML自包含标签除外)
只需遍历DOM并剥离任何不需要的属性。
var svg = $('#mySvg').clone(); //see http://api.jquery.com/clone/
var allNodes = svg.find('*');
allNodes.each( function(i,node) {
//Here you can extract any attribute starting with ng- but not all angular directives
//start with ng-*
node.removeAttribute('ng-repeat');
} );
相关文章:
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 如何替换数据属性中的特定字符串单词
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 用特定的javascript正则表达式替换每个单词
- 查找并替换多个单词 JavaScript
- 如何使用正则表达式 JavaScript 替换具有特定单词的整行
- 查找单词的一部分,但替换整个单词
- JavaScript-遍历数组并替换页面上的单词
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- JavaScript无法用相同单词的数量替换字符串
- Regex,替换所有以@开头的单词
- 根据Javascript中的模式替换单词
- 使用javascript替换单词
- 如果单词末尾没有“s”,请替换单词末尾的“s”
- 当用户输入时替换单词(JS)
- 用表单(Javascript)替换单词
- 在javascript中查找并替换单词
- 根据正则表达式搜索结果替换单词
- 用JavaScript动态替换单词