Javascript prototypejs中的字符串匹配
我在javascript中有以下字符串Javascript prototypejs中的字符串匹配,javascript,string,prototypejs,Javascript,String,Prototypejs,我在javascript中有以下字符串 str = '<a href="/display/1">This is link</a>'; 但是获取未定义的字符串不是DOM对象。 您拥有的变量-str是一个字符串,innerHTML属性仅存在于DOM(文档对象模型)节点上,因此您必须首先转换为该变量才能使用此方法 var div = document.createElement('div'); div.innerHTML = str; var domNode = div.fi
str = '<a href="/display/1">This is link</a>';
但是获取未定义的字符串不是DOM对象。 您拥有的变量-
str
是一个字符串,innerHTML属性仅存在于DOM(文档对象模型)节点上,因此您必须首先转换为该变量才能使用此方法
var div = document.createElement('div');
div.innerHTML = str;
var domNode = div.firstChild;
var textYouWant = domNode.innerHTML;
或者使用jQuery
$(str).html();
在PrototypeJS中,您可以使用以下函数:
'a <a href="#">link</a>'.stripTags();
// -> 'a link'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripTags();
// -> 'a linkalert("hello world!");'
'a <a href="#">link</a><script>alert("hello world!");</script>'.stripScripts().stripTags();
// -> 'a link'
'a'.stripTags();
//->“链接”
“警报(“你好,世界!”);”。stripTags();
//->“链接警报(“你好,世界!”);”
“警报(“你好,世界!”);”。stripScripts().stripTags();
//->“链接”
Prototype的stripTags()
将完成这项工作,但根据您的要求,您可能不希望实际删除所有HTML标记。例如,如果您的标记中有一个标记,stripTags()
也将删除该标记。下面是如何在纯JavaScript中使用正则表达式执行此操作:
function textFromLink(linkText) {
return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}
函数textFromLink(linkText){
返回linkText.replace(/.*]*>\s*(.+)\s***/,“$1”);
}
上面的函数将返回标记的内容,去掉空白,而不触及标记内的其他标记。oh ok。所以这个答案是纯javascript?是的,这里没有框架,尽管jQuery更简单-
$(str).html()
(抱歉,不是原型用户)看起来元素类是原型中的朋友-
function textFromLink(linkText) {
return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}