正则表达式文本和标签之间的一些标签
Regex text and some tags between tag
我的正则表达式标签有问题 html。任何人都请帮助我!
谢谢,这是我的一个案例...我搜索并思考但没有去做。
案例一
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua<p>
// Out Put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua
案例二
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
// Out put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit
案例三
// My input to regex
<p><ul>...</ul><p>
//Out put after regex
NULL
我猜这就是您想要的(javascript 中的示例)。
function checkParagraph(str)
{
var result = str.match(/^<p>([^<].*[^>])<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
关于仅允许 BR、IMG、A 和 IMG-inside-A 标签的附加信息,正则表达式完全不同:
function checkParagraph(str)
{
var result = str.match(/^<p>(([^<>]+|<br\/>|<img[^>]+>|<a[^>]+>[^<>]*<\/a>|<a[^>]+><img[^>]+><\/a>)*)<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("Lorem ipsum magna aliqua"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <a href=\"#\">magna</a> aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <img src=\"img.jpg\"/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
alert(checkParagraph("<p><span>magna</span> aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><span>magna</span> aliqua</a></p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/><span>magna</span> aliqua</a></p>"));
正则表达式分解:
/.../i
-> 大小写标签不区分大小写
^<p>...<\/p>$
-> 输入包含在 P 标签中
(...)
-> 括号之间的捕获组将变为 result[1]
(...|...)*
-> 以下任意数量的选项:
[^<>]+
-> 选项 1:任何不带标签的文本
<br\/>
-> 选项 2:BR 标签
<img[^>]+>
-> 选项 3:IMG 标签
<a[^>]+>[^<>]*<\/a>
-> 选项 4:一个带有文本的 A 标签
<a[^>]+><img[^>]+><\/a>
-> 选项 5:A 标签内含 IMG 标签
我的正则表达式标签有问题 html。任何人都请帮助我! 谢谢,这是我的一个案例...我搜索并思考但没有去做。
案例一
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua<p>
// Out Put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit <br/><a href="#"><img src="img.jpg/></a> sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua
案例二
// My input to regex
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
// Out put after regex
Lorem ipsum dolor sit amet, consectetur adipisicing elit
案例三
// My input to regex
<p><ul>...</ul><p>
//Out put after regex
NULL
我猜这就是您想要的(javascript 中的示例)。
function checkParagraph(str)
{
var result = str.match(/^<p>([^<].*[^>])<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
关于仅允许 BR、IMG、A 和 IMG-inside-A 标签的附加信息,正则表达式完全不同:
function checkParagraph(str)
{
var result = str.match(/^<p>(([^<>]+|<br\/>|<img[^>]+>|<a[^>]+>[^<>]*<\/a>|<a[^>]+><img[^>]+><\/a>)*)<\/p>$/i);
if (result) return result[1];
else return null;
}
alert(checkParagraph("Lorem ipsum magna aliqua"));
alert(checkParagraph("<p>Lorem ipsum magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <a href=\"#\">magna</a> aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <img src=\"img.jpg\"/> magna aliqua</p>"));
alert(checkParagraph("<p>Lorem ipsum <br/><a href=\"#\"><img src=\"img.jpg\"/></a> magna aliqua</p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/></a></p>"));
alert(checkParagraph("<p><span>magna</span> aliqua</p>"));
alert(checkParagraph("<p><a href=\"#\"><span>magna</span> aliqua</a></p>"));
alert(checkParagraph("<p><br/><a href=\"#\"><img src=\"img.jpg\"/><span>magna</span> aliqua</a></p>"));
正则表达式分解:
/.../i
-> 大小写标签不区分大小写
^<p>...<\/p>$
-> 输入包含在 P 标签中
(...)
-> 括号之间的捕获组将变为 result[1]
(...|...)*
-> 以下任意数量的选项:
[^<>]+
-> 选项 1:任何不带标签的文本
<br\/>
-> 选项 2:BR 标签
<img[^>]+>
-> 选项 3:IMG 标签
<a[^>]+>[^<>]*<\/a>
-> 选项 4:一个带有文本的 A 标签
<a[^>]+><img[^>]+><\/a>
-> 选项 5:A 标签内含 IMG 标签