解决方案 »
- 一个Js问题?
- 我有一个小问题希望大家帮帮
- JS 如何实现自动增加单元格
- 正则查找的问题,解决马上给分,谢谢先
- <span id="t1"><span id="t11"></span><span id="t12"></span></span>想在紧接在t11后插入一个对象,该怎么弄?insertBefore会变到t12后面
- javaScript中简单问题
- 怎样将一组复选框定义为一个数组类型
- 求救呀!!!
- FullCalendar v1.6.4 中的事件渲染上去是怎么排序的?
- 使用vue开发handsontable 无法插入列?
- 请教这段JS代码中的鼠标点击响应事件是写在哪的啊?
- dom遍历问题,在线等,谢了
<INPUT TYPE="text" id="inp" value="<b>abc<i><u>defg</u></i><u>123</u>456</b>" size="100">
<BR><TEXTAREA id="ta" ROWS="" COLS="100"></TEXTAREA>
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = document.getElementById("inp").value;
var reg = /^<([a-z]+)>(.*)<\/\1>$/ //正则匹配最外层的封闭标签
var str1 = str.replace(reg,"$2"); //去掉最外面的一层<b><\b>(否则整个字符串都能匹配……)
reg = /(<([a-z]+)>.*<\/\2>)/img //正则匹配封闭标签(组)
var str1 = str1.replace(reg,"<b>$1</b>"); //给匹配的标签外面套上<b><\b>
str1 = str1.replace(/^(\w*)/,"<b>$1</b>"); //给开头裸露部分上套
str1 = str1.replace(/(\w*)$/,"<b>$1</b>"); //给结尾裸露部分上套
document.getElementById("ta").value = str1;
//-->
</SCRIPT>
能不能贴出来一窥真容? <INPUT TYPE="text" id="inp" value="<b>abc<span><i><u>defg</u></i></span><u>123</u>456</b>" size="100">
<BR><TEXTAREA id="ta" ROWS="" COLS="100"></TEXTAREA>
<!--
又加了一层<span></span>,
结果是<b>abc</b><b><span><i><u>defg</u></i></span></b><b><u>123</u></b><b>456</b>
貌似挺对的呀……
另外,下面的正则表达式没有考虑标签内带属性的情况,要注意
-->
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = document.getElementById("inp").value;
var reg = /^<([a-z]+)>(.*)<\/\1>$/ //正则匹配最外层的封闭标签
var str1 = str.replace(reg,"$2"); //去掉最外面的一层<b><\b>(否则整个字符串都能匹配……)
reg = /(<([a-z]+)>.*<\/\2>)/img //正则匹配封闭标签(组)
var str1 = str1.replace(reg,"<b>$1</b>"); //给匹配的标签外面套上<b><\b>
str1 = str1.replace(/^(\w*)/,"<b>$1</b>"); //给开头裸露部分上套
str1 = str1.replace(/(\w*)$/,"<b>$1</b>"); //给结尾裸露部分上套
document.getElementById("ta").value = str1;
//-->
</SCRIPT>
var arr=["<b>abc<i><u>defg</u></i><u>123</u>456</b>",
"<b>abc<i><u><span>de</span>fg</u></i><u>123</u>456</b>"]
var i;
for(i=0;i<arr.length;i++)splitArr(arr[i]);function splitArr(str){
var rtn=[];
var obj=document.createElement("div");
obj.innerHTML=str;
var list=obj.childNodes[0].childNodes;
var i;
for(i=0;i<list.length;i++){
if(list[i].innerHTML)rtn[rtn.length]=list[i].outerHTML;
else rtn[rtn.length]=list[i].nodeValue;
}
alert(rtn);
}
</script>
<b>abc</b>
<b><i><u>defg</u></i></b>
<b><u>123</u></b>
<b>456</b>
改后的结果是:
<b>abc</b>
<b><i><u><span>de</span>fg</u></i></b>
<b><u>123</u></b>
<b>456</b>对于<b><i><u><span>de</span>fg</u></i></b> LZ期望怎样的结果?
<b><i><u><span>de</span></u></i></b> <b><i><u>fg</u></i></b>?