var str="12<td>2<2<div>2</td>"; 
//前面任意字符出现 0 或多次 < 后面字符不包含 /或 d 或 t 
console.info(str.replace("\w{0,}<[^/dt]","666"));
输出结果为: 12<td>2<2<div>2</td>
我希望的输出结果是 把 2<2 替换为 26662 也就是说把<替换为 666 并且不能影响 :
 12<td>26662<div>2</td>
求解 如果写这个正则
|  |      1teemoer OP <script > | 
|  |      2V2KN      2017-04-18 15:16:16 +08:00 via Android 没理解你的意思。。什么程序语言?“不能影响”什么?多给举个例子吧。 | 
|      3sculley      2017-04-18 15:17:33 +08:00 直接替换 2<2 不好吗,为什么用正则 | 
|  |      5teemoer OP @V2KN     ```javascript 比如 "12<td>2<2<div>2</td>"; > "12<td>26662<div>2</td>"; //我想要的是 把 < 替换成 666 但是 这个< 不能是 <td> 或者 </td> 或者 <div> 这些都是 html 标签 td 和 div // 我只是举个列子, 也就是说 不能影响正常的 html 标签 来 替换 html 标签里面 包含的 < 字符串 ``` | 
|  |      8teemoer OP @V2KN   我写出来了.... ``` javascript var str = "12<td>2<2<div>23<33</td>"; str.replace(/(\w{0,}\<{1,}[^t//d])/gi, function ($0, $1) { str = str.replace($1, ($1 + "").replace("<", 666)); console.info(str); }) ``` | 
|      9qyc666      2017-04-18 15:58:07 +08:00  1 str.replace(/<([^\/dt])/gi,"666$1") 是不是更短一点 |