使用正则表达式反转文本

时间:2015-02-21 04:05:14

标签: javascript regex

我正在尝试反向编写文本,最后我使用正则表达式进行了编写,但事实上,我使用过多的行来执行此操作。

这是完美的工作" eoJ nibreM"。 我认为可以将其写入单行。 我的代码是



function reversetext(){
	var text = 	$("#input_output").val();
	text = text.replace(/\r\n/g,'\n');
	text = text.replace(/\(/g,'  (  ');
	text = text.replace(/\)/g,'  )  ');
	text = text.replace(/\[/g,'  [  ');
	text = text.replace(/\]/g,'  ]  ');
	text = text.replace(/\{/g,'  {  ');
	text = text.replace(/\}/g,'  }  ');
	text = text.replace(/\</g,'  <  ');
	text = text.replace(/\>/g,'  >  ');
	text = text.split('').reverse().join('');
	text = text.replace(/  \(  /g,')');
	text = text.replace(/  \)  /g,'(');
	text = text.replace(/  \[  /g,']');
	text = text.replace(/  \]  /g,'[');
	text = text.replace(/  \{  /g,'}');
	text = text.replace(/  \}  /g,'{');
	text = text.replace(/  \<  /g,'>');
	text = text.replace(/  \>  /g,'<');
	$("#input_output").val(text);
}
$(window).load(function(){
  reversetext();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="input_output">Merbin Joe</textarea>
&#13;
&#13;
&#13;

任何人都可以减少此代码吗?

2 个答案:

答案 0 :(得分:3)

RegEx非常适合这种情况;它更多的是匹配字符串操作的模式。

您可以使用splitreversejoin

非常简单地执行此操作
var reverseString = function(string){ 
return string.split('').reverse().join('');  
}

答案 1 :(得分:0)

循环的另一种方法:

var name = "Joe Dirt", reverse = "";
for(var i=name.length-1;i>-1;--i){
    reverse+=name[i];   
};
console.log(reverse);