检查字符串是否是JS中的锚标记的最佳方法是什么?
一些例子:
<a href='./page'>Link</a> //returns true
<a href='./page'> //returns false
有快速简便的方法吗?
以最简单的形式。只要有一个开头<a>
和一个结束</a>
答案 0 :(得分:1)
您可以使用正则表达式:
function isAnchor(str){
return /^\<a.*\>.*\<\/a\>/i.test(str);
}
<强>演示强>
var testStrings = [
'<a href="./page">Hello</a>', // true
'<a>Hi</a>', // true
'<a href=\'test.php\'>Yo</a>', // true
'<A HREF=\'test.php\'>UPPERCASE</A>', // true - not case-sensitive
'test', // false
'<a href="./page">Hello', // false - tag not closed
'<span>Hi again</span>' // false
];
for(var i=0; i<testStrings.length; i++){
var str = testStrings[i];
document.body.innerHTML += str + ' => ' + isAnchor(str) + '<br>';
}
function isAnchor(str){
return /^\<a.*\>.*\<\/a\>/i.test(str);
}
答案 1 :(得分:0)
也许这会指出你正确的方向:
var stringOne = "<a href='./page'>Link</a>";
var stringTwo = "<a href='./page'>";
function isA(str){
if (str.indexOf("href") > -1 && str.indexOf("</a>") > -1){
return true;
}else{
return false;
}
}
console.log(isA(stringOne));
console.log(isA(stringTwo));