我有一个段落,我希望段落的第一部分超过100个字符,不到150个字符,我找到'。' (句末)。所以基本上我想要获得超过100个字符和150以下的文本,但不要在句子中间剪切它。我需要用Jquery做这个。
e.g。
<p id="post">Content here content here content here content here content here content here. More content</p>
答案 0 :(得分:0)
这应该适合您,但您应该发布您的代码,以便我们可以看到我们正在使用的内容
// get paragraphs, and filter it to match only ones greater than 100 in length
$('p').filter(function(){
if ($(this).text().length > 100 && $(this).text().length < 150)
return true
else
return false
// get the `text` of the paragraph, and replace everything after a period after 100 words
}).text().replace(/(.{100,150})\..+$/,'$1')
正则表达式:由/
分隔,捕获((...)
)任意字符(.
)100到150次({100,150}
)后跟(转义\
}).
后跟任意字符.
一次或多次(+
)后跟结束($
)。它捕获100到150个字符之间的.
的第一个字符。
编辑:如果它对你有用......
这与问题不完全相同,但是当字符串短于start
值时返回字符串,或者在.
和{{start
之间的limit
上剪切字符串1}},或者只是在没有匹配的limit
处切它。
/**
* @returns string Text from inside matched element (or concatenated elements)
* but cute off after the start, and before the limit on any available `.`
* or returns short strings, or cuts off at limit where there is no match
*/
$.fn.cutNicely = function(start, limit){
var regex = new RegExp( "(.{" + start + "," + limit + "}\\.).+$" )
return this.text().substr(0,limit).replace(regex,'$1')
}
// usage:
$('p').cutNicely(80,150)