日期:2014-05-16 浏览次数:20622 次
str = str.replace(/^\s*|\s*$|\s*([)(,\s])\s*/g, "$1");
------解决方案--------------------
str = str.replace(/\s*([)(,\s])\s*/g, "$1");
------解决方案--------------------
/* 原来这样子 \s*?([(,)\s]|^|$)\s* 昨晚测试时 发现不但不能去掉 数值和右括号之间的空格 字符串首尾的空格也没有剃光,还留有一个. 虽然中间有 ^ 跟 $, 但这两个并没有起作用 捕获组1 总是匹配到一个空格 像: */ var str = " abc "; str = str.replace(/\s*?([(,)\s]|^|$)\s*/g, "$1"); // 然后 str==" abc "; 前后还有一个空格 /* 所以我昨晚 把前面的\s*?换成贪婪模式后, 把 \s*([(,)\s])\s* 跟 ^\s* 和 \s*$ 三部分用 | 写成分支形式 就是一楼的那个样子了 */ // 下面这样子应该也可以了吧 var regex = /^\s+|\s*([)(,\s]|$)\s*/g; str = str.replace(regex, "$1");
------解决方案--------------------
不错,学习了,都是高手。
------解决方案--------------------
<script>
var re=/\s*([)(,\s])\s*/g;
var str1="  astring( ( 10  20  ) ,  (20    15)  ,  (20  15 )  )" 
var str2=" bstring( ( 10  10, 10  20, 20    20, 20  15, 10  10) ,  (20 15, 5  5, 10  10, 20 15) ) " 
var str3="  cstring(  (    10 10  ,20 15 )  ,( 10 10  ,20  15 ,5    7) ) " 
document.write(str1.replace(re, "$1")+"测试还有空格没")
document.write("<br>")
document.write(str2.replace(re, "$1")+"测试还有空格没")
document.write("<br>")
document.write(str3.replace(re, "$1")+"测试还有空格没")
</script>
------解决方案--------------------