<script>
var a=':<SPAN style="FONT-SIZE: 18pt; COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312">aaaaaa</SPAN><SPAN lang=EN-US>47</SPAN>';
b=a.indexOf('<SPAN lang=EN-US>');
alert(b);
var c=a.substring(0,b)+a.substring(b,a.length).replace(/<span[^>]*>|<\/span>/gi,"");
alert(c);
</script>

解决方案 »

  1.   

    indexof 和subString 交替使用先用indexOf找到 <SPAN lang=EN-US> 的位置i,将<SPAN lang=EN-US>去掉,然后从i开始向后查找第一个</SPAN> 将其去掉;如果<SPAN lang=EN-US>中间的空格、冒号不能确定,可以先查找 lang=EN-US 或 EN-US 的位置i,向前查找第一个 < 位置j 向后查找第一个 > 位置k,可找出<SPAN lang=EN-US>再从 k+1 向后开始查找第一个 < 及第一个 〉 可找出</SPAN>
      

  2.   

    <SPAN lang=EN-US>47</SPAN>这种情况在字符串中出现多次,我是不是要做个循环(这个如何做)还有就是能不能直接用正则表达式搞定呢
      

  3.   

    var str="<SPAN style=\"FONT-SIZE: 18pt; COLOR: red; LINE-HEIGHT: 150%; FONT-FAMILY: 楷体_GB2312\">aaaaaa</SPAN><SPAN lang=EN-US>47</SPAN>";re = /<SPAN lang=EN\-US>47<\/SPAN>/gi;
    newstr=str.replace(re, "");应当可以