我想把,123直接取出来,为什么不对 ,而且之前长度为8,之后长度是7?不是3。。
var str = " 123    ";
alert(str.length); // 8
str = str.replace(/^\s*(\.+)\s*$/ ,"$1");
alert(str.length); // 7

解决方案 »

  1.   

    str = str.replace(/^\s*(.+?)\s*$/ ,"$1");
    改成这样试试
      

  2.   

     str.replace(/^\s*([^\s]+)\s*$/ ,"$1");
      

  3.   

    str.replace(/^\s*([^\s]+)\s*$/ ,"$1"); 
      

  4.   

    你用你的对比一下正确的不就知道错哪了吗? str.replace(/^\s*(\.+)\s*$/ ,"$1");红色部分,“.”被转意了,所以匹配的是多个“.”
      

  5.   

    这个我打错了,可是问题不是这个。。var str = " 123    ";// 这里总共5个空格3个数字
    alert(str.length); // 8
    str = str.replace(/^\s*(.+)\s*$/ ,"$1");
    alert(str.length); // 7
      

  6.   

    .匹配的是否非换行符[\r\n]外的其他字符。。(.+)这里就匹配从数字开始到结束的空格了,后面的\s*忽略了