Javascript基于索引拆分字符串

时间:2014-05-12 07:26:44

标签: javascript string

是java脚本的新手。我有一个字符串变量,如下所示

var linkedinid = R3kyEgkyJxlinkedin; // it may sometimes R3kyEgkyJxlinkedincompany

我必须将此字符串拆分为仅获取id部分,即" R3kyEgkyJx"

我打算做的是在字符串中找到索引值linkedin或linkedincompany并仅获取id部分。我尝试了以下代码。它得到了预期的结果。但我不确定这是最好的方法。我不知道还有其他更好的方法。请指导我正确的方向。非常感谢您的帮助。谢谢

var str = "R3kyEgkyJxlinkedin"; // R3kyEgkyJxlinkedincompany (sometimes string may contain linkedincompany)
var n = str.indexOf("linkedin");
if(n == -1) {

n = str.indexOf("linkedincompany");
 if(n == -1) {
     // no match found
    } else { 

     var id = id = str.slice(0,n);
    }

} else { 

 var id = str.slice(0,n);

}

console.log('linked in id', id);

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

var str = "R3kyEgkyJxlinkedin",
    id = str.replace('linkedincompany', '').replace('linkedin', '');

基本上,只需从字符串中删除"linkedincompany""linkedin"

或者,甚至更短:

id = str.replace(/linkedin(company)?/, '');

或者:

id = str.replace(/linkedin.*$/, '');

答案 1 :(得分:2)

你可以找到" linkedin"的索引。并使用从0到该索引的子字符串:

var linkedinid  = "R3kyEgkyJxlinkedin";
var id = linkedinid.substr(0, linkedinid.indexOf('linkedin') );

如果没有" linkedin"子字符串它将作为s.substr(0, -1)然后id == ""

答案 2 :(得分:0)

如果您确定要删除的字符串的值: 比如上面的情况你想删除大小为8的linkedin, 你也可以试试: -

var linkedinId = "R3kyEgkyJxlinkedin"; linkedinId = linkedinId.slice(0,-8); //or linkedinId.slice(0,-15); in case of R3kyEgkyJxlinkedincompany