想要一正则,要求
 1.“.” 被替换成一个<span>标签 
 2.“^” 之前的文字被<span>标签包裹
 3. 空格 破折 等其他符号忽略例子。
abc^ >>  <span>abc</span>
abc.def^ >> abc<span><span><span>def</span>
abc^[空格]def^ <span>abc</span>[空格]<span>def</span>要求匹配如下
abc
abc^
a b c
ab^.c.de
abc.def^
ab.cde^.fg
a-b^.cd
ab^ cd^.ef.g
abc^.def gh^ ij^
abc^.de-fg.hi非常感谢

解决方案 »

  1.   

    var str="ab^ c24d^.ef.g";
    str=str.replace(/\./g,"<span>").replace(/(\w*)\^/g,"<span>$1</span>");
      

  2.   

        <script type="text/javascript">var array = [
    "abc",
    "abc^",
    "a b c",
    "ab^.c.de",
    "abc.def^",
    "ab.cde^.fg",
    "a-b^.cd",
    "ab^ cd^.ef.g",
    "abc^.def gh^ ij^",]
    var regex1 = /(\w+)\^/;
    var regex2 = /\./g
    for(var i = 0 ; i < array.length; i ++)
    {
    while(regex1.test(array[i])) array[i] = array[i].replace(regex1,"<span>"+RegExp.$1+"</span>");
    array[i] = array[i].replace(regex2,"<span></span>")
    }
    document.write(array.join("</br>"))
        </script>
      

  3.   


    function getStr(str)
    {
    var reg1 = /\./g;
    var reg2 =/([^\^\.]*?)\^/g;var tempstr = str.replace(reg2,"<span>$1</span>").replace(reg1,"<span></span>");return tempstr;
    }
    var array = [
    "abc",
    "abc^",
    "a b c",
    "ab^.c.de",
    "abc.def^",
    "ab.cde^.fg",
    "a-b^.cd",
    "ab^ cd^.ef.g",
    "abc^.def gh^ ij^",];for(i=0;i<array.length;i++)
    {
     alert(array[i]+"-->"+getStr(array[i]));
    }