我需要一些帮助才能正确实现一个方法,该方法使用.split
和.replace
来格式化传递给它的字符串值。
根据此示例,字符串值为HTML链接的90%:<a href=\"http://www.fnb.co.za\" rel=\"nofollow\">SMC RBJacobs</a>
。但有时它只包含一个普通的字符串值,例如:SMC RBJacobs
。
我认为通过检查.indexOf('</a>')
,来评估价值是一个好主意,但这会一直评估为真。(?)然后我在下一个时会收到错误在我的方法中执行的语句。
以下是我的方法:
if (col.name === 'twitter_tweet.source') {
var str = value;
if (value != null || value != undefined) {
if (value.indexOf('</a>')) {
var parts = str.split('"nofollow\">');
var value = parts[1].replace('</a>', '');
return value;
}
}
return value;
}
无论字符串是否包含HTML标记,所需的输出:SMC RBJacobs (或传递的任何名称)
任何帮助将不胜感激!
答案 0 :(得分:3)
indexOf
总是返回一个数字,而不是布尔值。如果找到,索引将为零或更多。如果未找到,则索引将为-1。所以你想检查:
if (value.indexOf('</a>') > -1) {
如果你可以有不同的标签和间距我建议使用像jQuery那样脆弱的东西:
if ($(value).length) {
return $(value).text();
}
答案 1 :(得分:0)
我尝试按照以下方法:
var str = '<a href=\"http://www.fnb.co.za\" rel=\"nofollow\">SMC RBJacobs</a>',
el = document.createElement('div'),
result;
el.innerHTML = str;
result = el.textContent;
console.log(result);
注意#1 :我在此假设HTML字符串是安全的。
注意#2 :str
可以是HTML或字符串。