日期:2014-05-16 浏览次数:20624 次
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>
------解决方案--------------------