对于正则表达式有个特别怪的问题
代码如下:
1 <html> 2 <head> 3 <script type="text/javascript"> 4 5 function message() 6 { 7
8 document.getElementById("result").innerHTML = getHttpRegex(); 9 } 10 /** 11 * http,https正規表現文字列の取得 12 * 13 * @return 14 */ 15 function getHttpRegex() { 16 17 var str1 = "aa"; 18 var str2 = "1$&2"; 19 var result = String.format("%s%s??",str1,str2); 20 return result; 21 } 22 String.format = function() { 23 if (arguments.length == 0) 24 return null; 25 var str = arguments[0]; 26 var re = new RegExp("%s"); 27 for (var i = 1; i < arguments.length; i++) { 28 str = str.replace(re, arguments[i]); 29 } 30 return str.toString(); 31 } 32 </script> 33 </head> 34 35 <body> 36 <br/><br/> 37 <input type="button" value="display" onClick="message()"/> 38 <br/><br/><br/><br/> 39 <span id="result"></span> 40 </body> 41 </html>
直接用IE打开就OK
希望的结果应该是:
aa1¥&2??
但结果却是:
aa1%s2??
不知道为什么%s先被1¥&2替换掉之后,¥&又被替换成%s
有没有大神能解决的,小弟求教了
具体又测试了一下跟%s没有关系,应该是
$&这个符号的问题
需要注意 元字符和限定符 !