本帖最后由 mokson 于 2011-06-26 13:44:06 编辑

解决方案 »

  1.   

    var str = "宇宙真是奇妙@@  ##~ 太阳和月亮有时赌气 some time约会";
    str = str.replace(/\s{2,}/g,"");
    var regex = /([\u4e00-\u9fa5](?=[\@\#])|[\w](?=[\u4e00-\u9fa5]))/;
    while(regex.test(str)) str = str.replace(regex,RegExp.$1+" ");
    alert(str)
      

  2.   

    我对 regExp 越学越头痛。
    楼上的朋友,真是JS大师。
      

  3.   

    str=str.replace(/([\x00-\xff\s]+)(?=[^\x00-\xff])/g,function(arg0){
    if(/^[^a-zA-Z](.*?)[^a-zA-Z]$/.test(arg0)){
    arg0=arg0.replace(/\s/g,'');
    }
    return arg0+' ';
    }).replace(/([^\x00-\xff])(?=[\x00-\xff])/g,function (){
    return arguments[0]+' ';
    });
    alert(str);
      

  4.   

    看你的空格具体是指的什么啦 单纯的空格键就是 / / 当然还有制表/\t/ 换行/\n/ 回车/\r/ 换页/\f/这些看起来也是个空格 总体来说/\s/代表所有不显示但占一个位置的“空”符号