现在有个比较郁闷的问题,如下
var str = w + t
我用正则表达式 str.replace(/[^\w]/g,",") 能替换成 w,t
如果 
var str = 我 + 他
再用上面的正则替换就不行了 
怎么才能写一个比较好且通用的替换,无论是 w+t 或者 我+他 或者 我+t 均能替换成为 w,t 或 我,他 或 我,t 呢?
请高手指教!!!

解决方案 »

  1.   


    var re = new RegExp("w\\+t|我\\+他", "");
      

  2.   


    // 正则表达式对象
    var re = new RegExp("w\\s*\\+\\s*t|我\\s*\\+\\s*他", "");
    // 文本
    var oldtext = "your text";
    var newtext = oldtext.replace(re, "replace to");
      

  3.   

    看错了!你把加号replace成“,”号不可以了吗?
      

  4.   

    str.replace(/[+]/g,",")还有什么连接符也放到[]里面,用,隔开
      

  5.   

    str = str.replace(/[+]/g, ",");
    支持楼上
      

  6.   

    楼上的几位说的都有道理,可是遇到复杂的就不行了
    请看下面的
    var str = "我+t*i/年+3*p-(我-8)";
    怎么才能得到 如下的结果呢?
    我,t,i,年,3,p,,我,8,
      

  7.   

    在准确一点是,将重复的','给替换成一个','呢?
    我,t,i,年,3,p,我,8,
      

  8.   

    str.replace(/[+,-,*,/]/g,",")
    请lz还是认真的分析一下别人的回答,看你上面的情况不就是把运算符合换成,嘛,上面都说了,还有其它什么符号都放到[]里面
      

  9.   


    (new Regex("[^\u4e00-\u9fa5\\w]").Replace(s,",")).Replace(",,",",")中文字符不属于\w
      

  10.   


    var str = "我+t*i/年+3*p-(我-8)"; 
    str.replace(/[^\u4e00-\u9fa5\w]/g,",").replace(",,",",")