我是正则表达式的新手。任何人都可以建议我下面的字符串等效的正则表达式。我需要在输入文本框中验证这些。
"Start<b>Middle</b>End"
或
"Start<b>End</b>"
或
"<b>Start</b>End"
或
"StartMiddleEnd"
答案 0 :(得分:2)
你真的应该使用DOM。
首先将字符串转换为DOM对象,一旦完成,检查它是否包含b
标记:
function hasBTag(html) {
var parser = new DOMParser();
var node = parser.parseFromString(html, "text/html");
var allNodes = node.getElementsByTagName('*');
for (var i = -1, l = allNodes.length; ++i < l;) {
if (allNodes[i].nodeName === 'B' ) {
return true;
}
}
return false;
}
(function() {
var html = [
'"Start<b>Middle</b>End"',
'"Start<b>End</b>"',
'"<b>Start</b>End"',
'"StartMiddleEnd"'
];
for (var i = 0, l = html.length; i < l; i++) {
if (hasBTag(html[i])) console.log(html[i] + ' haz b tag');
}
}());
尝试使用正则表达式解析HTML几乎总是一个糟糕的主意。
答案 1 :(得分:0)
var strToTest = "Hi, my name is <b>Ankur</b>";
if(strToTest.indexOf("<b>")!=-1 || strToTest.indexOf("</b>")!=-1)
{
console.log("String includes bold tag");
}
很少有人说你需要逃避&lt;,&gt;和/。但是在这种情况下不需要它。
如果要使用正则表达式检查开始和结束粗体标记,请使用此
/ \&lt; /?b&gt; / gi
这将测试和