我有如下文本,嵌入的空格显示某些xml数据的缩进:
<Style id="KMLStyler"><br>
<IconStyle><br>
<colorMode>normal</colorMode><br>
Run Code Online (Sandbox Code Playgroud)
我需要使用Javascript来替换每个LEADING空间
Run Code Online (Sandbox Code Playgroud)
所以它看起来像这样:
<Style id="KMLStyler"><br>
<IconStyle><br>
<colorMode>normal</colorMode><br>
Run Code Online (Sandbox Code Playgroud)
我尝试了一个基本的替换,但它匹配所有空间,而不仅仅是领先的空间.除了领先的那些,我想留下所有的空间.有任何想法吗?
JavaScript没有方便\G(甚至不是后视),所以这个AFAIK没有纯正的正则表达式解决方案.这样的事情怎么样:
function foo() {
var leadingSpaces = arguments[0].length;
var str = '';
while(leadingSpaces > 0) {
str += ' ';
leadingSpaces--;
}
return str;
}
var s = " A B C";
print(s.replace(/^[ \t]+/mg, foo));
Run Code Online (Sandbox Code Playgroud)
产生:
A B C
Run Code Online (Sandbox Code Playgroud)
在此测试:http://ideone.com/XzLCR
或者使用匿名内部函数(它被称为?),如评论中的glebm评论:
var s = " A B C";
print(s.replace(/^[ \t]+/gm, function(x){ return new Array(x.length + 1).join(' ') }));
Run Code Online (Sandbox Code Playgroud)
见那在这里的行动:http://ideone.com/3JU52
| 归档时间: |
|
| 查看次数: |
2952 次 |
| 最近记录: |