我在javascript中有以下字符串。原型js中的字符串匹配
str = '<a href="/display/1">This is link</a>';
我想要得到"This is link"
從上面的字符串,但沒有成功。
我想這也
str.innerHTML
但得到不確定
我在javascript中有以下字符串。原型js中的字符串匹配
str = '<a href="/display/1">This is link</a>';
我想要得到"This is link"
從上面的字符串,但沒有成功。
我想這也
str.innerHTML
但得到不確定
字符串是不是一個DOM對象。 您擁有的變量 - str
是一個字符串,innerHTML屬性僅存在於DOM(文檔對象模型)節點上,因此您必須首先將其轉換爲使用此方法。
var div = document.createElement('div');
div.innerHTML = str;
var domNode = div.firstChild;
var textYouWant = domNode.innerHTML;
或者用jQuery
$(str).html();
在PrototypeJS,你可以使用stripTags()
功能:
'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'
原型的stripTags()
將做的工作,但根據您的需求,您可能不想實際去掉所有的HTML標籤。例如,如果您的標籤內有標籤,則stripTags()
也會將其刪除。這裏是你如何使用正則表達式做到在普通的JavaScript:
function textFromLink(linkText) {
return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}
上述函數將返回標籤,修剪空白的內容,不接觸標籤內的其他標籤。
好的。所以這個答案是在純粹的JavaScript? – Awan
是的,這裏沒有框架,雖然它在jQuery中更簡單 - ''$(str).html()'(抱歉,不是原型用戶) – tobyodavies
看起來像Element類是你的原型中的朋友 - http:// api .prototypejs.org/DOM /元/新/ – tobyodavies