首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript解析大字符串

Javascript解析大字符串
EN

Stack Overflow用户
提问于 2018-06-23 07:14:16
回答 2查看 294关注 0票数 0

我有一个相当简单的问题。

我有一个很大的字符串,我想要抓取字符串的特定部分。

例如,在下面的正文中,我希望获得两个粗体短语之间的短语。

首先,我可以简单地使用.split('unique word')[1]来获取第一个粗体单词之后的短语。

但是,我不能在第一次拆分得到的字符串上直接使用.split('nonunique word')[0]。(这将为我返回一个错误,说明我试图拆分的字符串是undefined)。

在我的特定情况下,我试图拆分的第二个短语在整个字符串中重复多次,这就是为什么我在本例中将其描述为“非唯一单词”。

Lorem和dolor坐在一起,敬爱你。Curabitur non fringilla eros,一个枕头花瓶。Nunc mauris nulla,consectetur egestas ipsum quis, dui.Pellentesque nulla 非唯一的单词 quis pharetra坐名,俗称的坐名nisl。我坐在一个精灵的前庭里。透明的中间层我坐在那里。

如果有简单的方法,请告诉我。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-23 07:31:26

这取决于您希望它在文本中找不到唯一单词的情况下返回什么。如果你想返回一个空字符串,你可以使用一个默认值,如下所示:

代码语言:javascript
复制
var myStr = "my text has a unique word and also some nonunique word nonunique word nonunique word";
var myStr2 = "my text does not have any has a uniquewords";
           // if split()[1] is undefined (because unique word was not found), default to ""
var text = (myStr.split('unique word')[1] || "").split('nonunique word')[0];
           // if split()[1] is undefined (because unique word was not found), default to ""
var text2 = (myStr2.split('unique word')[1] || "").split('nonunique word')[0];
console.log(text);
console.log(text2);

票数 0
EN

Stack Overflow用户

发布于 2018-06-23 08:22:48

我认为最好的方法实际上不涉及split,使用substring会更好。你可以这样做:

代码语言:javascript
复制
function getBetween(str, start, end){
    var startIndex = str.indexOf(start);
    var endIndex = str.indexOf(end);
    if(startIndex < 0 || endIndex < 0){
        return null;
    }
    return str.substring(startIndex + start.length, endIndex);
}

它主要是查找第一个字符串的第一个匹配项,然后查找第一个字符串之后的第二个字符串的第一个匹配项,并返回介于两者之间的所有内容。

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

https://stackoverflow.com/questions/50996578

复制
相关文章

相似问题

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