te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - jQuery: parse HTML into text - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery: parse HTML into text - Stack Overflow

programmeradmin3浏览0评论

I use substr() on a string to output a set of characters from a message. My problem is that if the string contains HTML I would get the tags in the text.

Is it possible to parse the HTML before using substr() to only extract the text from the message itself?

Example 1:

var string = "Hi";

alert(string.substr(0, 7));

Alert:

Hi


Example 2:

var string = "<br/>Hi";

alert(string.substr(0, 7));

Alert:

<br/>Hi

I use substr() on a string to output a set of characters from a message. My problem is that if the string contains HTML I would get the tags in the text.

Is it possible to parse the HTML before using substr() to only extract the text from the message itself?

Example 1:

var string = "Hi";

alert(string.substr(0, 7));

Alert:

Hi


Example 2:

var string = "<br/>Hi";

alert(string.substr(0, 7));

Alert:

<br/>Hi

Share Improve this question edited Jun 20, 2020 at 9:12 CommunityBot 11 silver badge asked Jan 8, 2014 at 16:53 Sam PetterssonSam Pettersson 3,2276 gold badges24 silver badges38 bronze badges 2
  • How does string get populated? You could do something like $(string).text(), but there's probably a much more efficient way that doesn't involve jQuery. – crush Commented Jan 8, 2014 at 16:55
  • 1 Have a look at the accepted answer to this question: stackoverflow./questions/10585029/… – richsilv Commented Jan 8, 2014 at 16:56
Add a ment  | 

9 Answers 9

Reset to default 4

Using jQuery.text() method, you can extract only the text.

var str = "<br/>Hi"

$('<p>' + str + '</p>').text(); //Wrap your input in a p element first to ensure you get the text if your string isn't wrapped in HTML.

You can remove the html via a regex, see the answer here and you can do something like this:

String.prototype.removeHtml=function(){
  return this.replace(/(<([^>]+)>)/ig,"");
}

var string = "<br/>Hi";

alert(string.removeHtml().substr(0, 7));

Fiddle: http://jsfiddle/fx3MJ/

Remove HTML Tags in Javascript with Regex

Yes using this:

var string = "<br/>Hi";
var stringStripped = string.replace(/(<([^>]+)>)/ig,"");
alert(stringStripped);

http://jsfiddle/hutchonoid/7T56N/

You could replace html-tag with regex pattern

var string = string.replaceAll("<[^>]*>", "");

If you input is read in the DOM, you can use jQuery to get just the text. Example :

<p id="foo"><br />Hi</p>

var string = $('#foo').text();

alert(string.substr(0, 7)); //says "Hi"

See jQuery doc for reference.

Edit: If your input es from somewhere else, you can still use jQuery, but there may be better solution.

var input = "<br />Hi";
var fakeElement = $('<div>' + input + '</div>');

var string = fakeElement.text();

alert(string.substr(0, 7)); //says "Hi"

If you want to get the text with HTML tag, try to use .innerHTML from jQuery.

<p id="foo"><br />Hi</p>


$("#foo")[0].innerHTML;

Console: "<br />Hi"

You could leverage jQuery's text() function:

 $('<div>').append('<br />hi').text();

This creates a new element, to which you can append your markup, and then use text() to extract the text. A little round-about, but it works.

I'd remend a regex solution over this.

try this:

var string = "<br/Hi>".replace(/&#39;/g, '\'').replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&apos;/g, '\'');
alert(string);

Try this

var string = "<br/>Hi";

alert($('<span>'+string+'</span>').text().substr(0, 7));

FIDDLE

发布评论

评论列表(0)

  1. 暂无评论