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>
求解 如果写这个正则
1
teemoer OP <script >
|
2
V2KN 2017-04-18 15:16:16 +08:00 via Android
没理解你的意思。。什么程序语言?“不能影响”什么?多给举个例子吧。
|
3
sculley 2017-04-18 15:17:33 +08:00
直接替换 2<2 不好吗,为什么用正则
|
5
teemoer 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 标签里面 包含的 < 字符串 ``` |
8
teemoer 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); }) ``` |
9
qyc666 2017-04-18 15:58:07 +08:00 1
str.replace(/<([^\/dt])/gi,"666$1")
是不是更短一点 |