我有一个相当简单的问题。
我有一个很大的字符串,我想要抓取字符串的特定部分。
例如,在下面的正文中,我希望获得两个粗体短语之间的短语。
首先,我可以简单地使用.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。我坐在一个精灵的前庭里。透明的中间层我坐在那里。
如果有简单的方法,请告诉我。谢谢!
发布于 2018-06-23 07:31:26
这取决于您希望它在文本中找不到唯一单词的情况下返回什么。如果你想返回一个空字符串,你可以使用一个默认值,如下所示:
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);
发布于 2018-06-23 08:22:48
我认为最好的方法实际上不涉及split
,使用substring
会更好。你可以这样做:
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);
}
它主要是查找第一个字符串的第一个匹配项,然后查找第一个字符串之后的第二个字符串的第一个匹配项,并返回介于两者之间的所有内容。
https://stackoverflow.com/questions/50996578
复制相似问题