在javascript中操作字符串

Manipulating a string in javascript

本文关键字:字符串 操作 javascript      更新时间:2023-09-26

如果我有一个长字符串,比如

var str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu accumsan urna. Phasellus imperdiet elementum massa sit amet condimentum. Vivamus porttitor lobortis dignissim. Nam non tellus sapien, at pulvinar augue. Nulla metus mauris, cursus a sodales varius, imperdiet nec nisi. Quisque ut est quis massa sagittis pharetra quis aliquam dui. Phasellus id nisi quis mauris ultricies tristique et ut orci.";

我想对它进行操作,让它像这样显示

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu..."

我该怎么做呢?

尝试使用substring()方法

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring

返回位于一个索引和另一个索引之间的字符串子集,或者返回到字符串的末尾。

var max = 20;
str = str.length > max 
    ? str.substring(0, max - 3) + "..." 
    : str;

您可以通过简单的javascript字符串操作来实现这一点。

var limit = 30 //or wherever you want to cut it off
str = str.substring(0, Math.Min(limit, str.length)) + '...'
编辑:


需要Math.Min作为javascript的子字符串方法将照顾这个问题,如果限制比字符串长。

注意:这将追加"…",即使你的字符串太短,并显示其整体。

jQuery虽然提供了许多有用的预编写代码,但并不针对那些进行字符串操作的人。

直接使用子字符串

var truncated = str.substring(0, 40);
if (truncated !== str) {
    str = truncated + "…";
}

可以使用substr

var limit = 100;
str = str.substring(0,limit) + '...';
var shortStr = str.substr(0, 66) + '...';

你需要学习JavaScript然后使用 jQuery!所有的字符串操作都可以用JavaScript完成。您应该使用.substring().substr().slice()等函数…

在这种情况下,你可以使用substr:

str.substr(0, str.indexOf('eu') + 2) + '...';

您可以使用正则表达式替换:

str = str.replace(/^(.{0,29}['w'd])('b.+)?$/, function($0, $1) {
   if($1.length < str.length) {
       return $1+'...';
   }
   return $0;
});

这将:

  • 如果str小于30个字符,结果为整个字符串。
  • 如果str长度超过30个字符,则在字边界处将其截断,并在其后面添加...。这可以确保您不会最终得到Lorem ipsum dolor sit amet,... (...之前有逗号)
  • 的结果。

将其更改为截断为66个字符…

str = str.replace(/^(.{0,65}['w'd])('b.+)?$/, function($0, $1) {
   if($1.length < str.length) {
       return $1+'...';
   }
   return $0;
});