【发布时间】:2013-10-05 12:05:44
【问题描述】:
这是我尝试做的一个例子:
This is a paragraph of text.
<-This is some text to be left aligned<-
This is some more text.
This is a paragraph of text.
->This is some text to be centered<-
This is some more text.
This is a paragraph of text.
->This is some text to be right aligned->
This is some more text.
箭头字符 用于(由用户)指定他们想要对齐文本的方式。到目前为止,这是我一直在整理的内容:
var text = "->This is some text to be centered<-";
var center_text = text.match("->(.*)<-");
if(center_text){
text = '<span style="text-align:center;">'+center_text[1]+'</span>';
console.log(text);
}
虽然这确实有效,但如果以下两种情况紧随其后,它就会中断:->TextText2 和最后一个
我需要正则表达式能够识别它应该替换每组这些箭头,即 ->TextText-> 是另一个替换项。这在javascript中可能吗?
更新:
var text = "This is a paragraph. <-This is left aligned<-. This is a paragraph. ->This is center aligned<-. This is a paragraph. ->This is right aligned->. This is a paragraph. ->This is right aligned->. This is a paragraph. ->This is center aligned<-";
text = text.replace(/<-(.*?)<-/g, '<span style="text-align: left;">$1</span>');
text = text.replace(/->(.*?)<-/g, '<span style="text-align: center;">$1</span>');
text = text.replace(/->(.*?)->/g, '<span style="text-align: right;">$1</span>');
console.log(text);
这是基于以下答案,但这会中断。以下是它真正变成的样子:
This is a paragraph. <span style="text-align: left;">This is left aligned</span>. This is a paragraph. <span style="text-align: right;">This is center aligned<span style="text-align: left;">. This is a paragraph. </span>This is right aligned<span style="text-align: right;">. This is a paragraph. </span>This is right aligned<span style="text-align: right;">. This is a paragraph. </span>This is center aligned</span>
如何解决这个问题,有没有更优雅的方法?
提前致谢,正则表达式不太好。抱歉,在发布此最新更新之前没有在下面看到答案。
【问题讨论】:
标签: javascript regex replace match