Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery检查字符串是否为HTML标记_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery检查字符串是否为HTML标记

Javascript jQuery检查字符串是否为HTML标记,javascript,jquery,html,Javascript,Jquery,Html,我只需要检查字符串是否是HTML标记。我在谷歌搜索并尝试了以下代码,但没有成功: var v = $(string).html() ? 1 : 0; --or---------------------------------------------- var htmlExpr = new RegExp("/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/"); var v = htmlExpr.test(string) ? 1 : 0;

我只需要检查字符串是否是HTML标记。我在谷歌搜索并尝试了以下代码,但没有成功:

var v = $(string).html() ? 1 : 0;

--or----------------------------------------------

var htmlExpr = new RegExp("/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/");
var v = htmlExpr.test(string) ? 1 : 0;

--or----------------------------------------------

var v = $(string).each(function(){$(this).html();} ? 1 : 0;
在这个函数中,我需要处理第3行中的“$this.text()”部分

我们正在查找的标记中的文本,有时包含普通字符串,有时包含img标记。当它是一个普通文本时,我想把它完全放在optText变量中;但是当它是一个img标记时,我只想把它的alt属性放在那个变量中

简而言之:

$this.text() => NormalText

--or----------------------------------------------

$this.text() => <img src="#" alt="AltText" />
但是这些代码对我都不管用

现在,你能帮帮我吗

像这样的事情?:

var str = "<img alt='hello'>";

if(str.match(/\<img.+\>/)) {
    str = $(str).attr('alt');
}
您还可以使用和组合:

if($(str).is('img') && $(str).attr('alt')) {
    str = $(str).attr('alt');
}

如果您只想检查它是否是图像并且具有
alt
属性,请尝试以下正则表达式:

/(?=.*alt=".+")<img.*?\/?>/
/(?=.*alt=“.+”);
var str2='';
var str3='';
console.log(img.test(str1));//=真的
console.log(img.test(str2));//=假的
console.log(img.test(str3));//=假的
这有帮助吗

var-samples=[,“你好”,“再见”,“再见];
对于(变量i=0,len=samples.length;i0){
警报($(样本[i]).attr('alt');
}    
}

我自己发现了问题。。。这是一个逻辑错误

关键是,当字符串是普通文本时,我们可以使用
text()
,但当它是HTML时,我们应该使用
HTML()
,否则
text()
返回
null


我也从你们身上学到了一些东西。。。非常感谢大家……;)

提供一个示例字符串…我添加了更多详细信息…@JonathanHobbs,已删除。但是,我认为这没什么大不了的。我遵循了这里一些人的传统。我不在web上使用它,在web上我可以用css设计内容的样式。唯一的原因是强调链接。为什么这个答案被否决了?它似乎可以正确地检查img元素并检索它们的alt属性。这是一种时尚,正如在那个元讨论中提到的。但这不是一种好的时尚PI同意,语义应该在顶部。但这里没有办法突出显示链接。请参见此处对我的问题的评论。一个家伙真的强迫我使用kbd。如果他能找到的话,我会告诉他帖子里已经有几个链接了谢谢最后一部分。。。它似乎比正则表达式方法更简单更清晰。我知道伙计。。。但同时也有一些时间限制。。。我会尽快做的。
if($(str).attr('alt')) {
    str = $(str).attr('alt');
}
if($(str).is('img') && $(str).attr('alt')) {
    str = $(str).attr('alt');
}
/(?=.*alt=".+")<img.*?\/?>/
var str1 = '<img src="http://dot.com/test.jpg" alt="test"/>';
var str2 = '<img src="http://dot.com/test.jpg" alt="" />';
var str3 = '<input/>';

console.log(img.test(str1)); //= true
console.log(img.test(str2)); //= false
console.log(img.test(str3)); //= false
var samples = ["<img src='#' alt='img1' />","hello","bye","<img src='#' alt='img2' />"];
for(var i = 0, len = samples.length; i < len; i++) {
    if($(samples[i]).length > 0) {
        alert($(samples[i]).attr('alt'));
    }    
}