js正则表达式 我想要让‘<p>1</p><p>2[色]</p><p>2[色]</p><p>1</p>’用正则表达式转出‘1\n2[色]\n2[色]\n1’
时间: 2024-09-20 15:12:18 浏览: 58
在JavaScript中,你可以使用正则表达式配合`replace()`函数来替换HTML字符串中的内容。针对你的需求,你需要匹配每个独立的`<p>`标签内的文本,并保留`[色]`部分。这里是一个简单的示例:
```javascript
const input = '<p>1</p><p>2[色]</p><p>2[色]</p><p>1</p>';
const pattern = /<p>(.*?)<\/p>/g; // 匹配开始和结束的<p>标签,星号(*)表示任意字符,非贪婪模式
const replacement = '$1\n$&'; // $1捕获第一个组的内容(即标签内的文本),$&代表整个匹配项
const output = input.replace(pattern, replacement);
console.log(output); // 输出 '1\n2[色]\n2[色]\n1'
```
这个正则表达式会找到所有`<p>`和`</p>`之间的内容,并在它们之间插入换行符`\n`。注意,这个正则表达式假设输入的HTML结构是正确的,如果存在嵌套或其他特殊情况,可能需要更复杂的解析。
相关问题
js用正则表达式获取字符串'<p>你好</p>'中的'<p></p>'
您可以使用以下正则表达式来获取字符串中的 `<p></p>`:
```javascript
var str = '<p>你好</p>';
var reg = /<p>.*<\/p>/;
var result = str.match(reg)[0];
console.log(result); // 输出:<p>你好</p>
```
这里使用了 `.*` 来匹配任意字符,`\/` 来匹配 `/`,`match()` 方法返回一个数组,所以需要取第一个元素 `[0]`。
js用正则表达式获取字符串<p>你好</p>中的<p></p>
可以使用正则表达式 `/\<\/?p\>/g` 来获取字符串 `<p>你好</p>` 中的 `<p></p>` 标签。具体代码如下:
```javascript
var str = "<p>你好</p>";
var reg = /\<\/?p\>/g;
var matchResult = str.match(reg);
console.log(matchResult); // ["<p>", "</p>"]
```
在上面的代码中,`/\<\/?p\>/g` 是一个正则表达式,其中 `\<` 表示匹配 `<` 字符,`\>` 表示匹配 `>` 字符,`\/?` 表示匹配 `/` 字符出现 0 次或 1 次,`p` 表示匹配 `p` 字符。`g` 表示全局匹配,即查找所有匹配的结果。
然后,通过 `match()` 方法将字符串中所有匹配的结果存储在 `matchResult` 数组中,最后输出结果即可。
阅读全文