首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >原型中的字符串匹配

原型中的字符串匹配
EN

Stack Overflow用户
提问于 2011-10-19 06:45:27
回答 3查看 59关注 0票数 2

我在javascript中有以下字符串。

代码语言:javascript
运行
复制
str = '<a href="/display/1">This is link</a>';

我想从上面的字符串中获得"This is link",但没有成功。

我也试过这个

代码语言:javascript
运行
复制
str.innerHTML

但是获取未定义的

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-19 06:51:38

字符串不是DOM对象。您拥有的变量- str是一个字符串,innerHTML属性仅存在于DOM (Document )节点上,因此您必须首先转换为该属性才能使用这种方法。

代码语言:javascript
运行
复制
var div = document.createElement('div');
div.innerHTML = str;
var domNode = div.firstChild;

var textYouWant = domNode.innerHTML;

或使用jQuery

代码语言:javascript
运行
复制
$(str).html();
票数 1
EN

Stack Overflow用户

发布于 2011-10-19 07:05:37

在PrototypeJS中,您可以使用stripTags()函数:

代码语言:javascript
运行
复制
'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'
票数 3
EN

Stack Overflow用户

发布于 2011-11-18 00:37:51

Prototype的stripTags()将完成这项工作,但取决于您的需求,您可能不想实际删除所有的HTML标记。例如,如果标签中有一个标记,stripTags()也会删除它。下面是如何在普通的JavaScript中使用正则表达式来完成这一任务:

代码语言:javascript
运行
复制
function textFromLink(linkText) {
    return linkText.replace(/.*<a[^>]*>\s*(.+)\s*<\/a>.*/, '$1');
}

上面的函数将返回标签的内容,并在不触及标签内的其他标签的情况下,裁剪空格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7817520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档