2014-01-30 239 views
1

我从服务器/ myMessages/v2/messages/I7/parts/1获取urls。我想使用javascript检索“I7”部分。服务器将返回类似的网址,这些网址也不会有固定的长度,因为这些数字可能是两位数字。我如何检索“消息”之间的/和/之间的内容。从文本中获取子字符串

+1

你尝试过什么吗?这是字符串操作,而不是火箭科学。 – Jon

+0

是的,但我是新来的js,想知道最有效的soln,因为无论我试图做的事情都变得越来越难看。我真的很感激,如果你能帮助我 – vijar

+0

看看JavaScript的正则表达式,例如[这里](http://www.w3schools.com/jsref/jsref_obj_regexp.asp) –

回答

1
var str = '/myMessages/v2/messages/I7/parts/1', 
    arr = str.split('/'), 
    id = arr[arr.indexOf('messages') + 1]; // 17 
+1

我个人比较喜欢此回答更多而不是正则表达式,因为它变得更容易变成一个通用函数,可以传递'myMessages','messages'或'parts',并获得相应的值。 – jcarpenter2

0

一个正则表达式的解决方案:

var s = "/myMessages/v2/messages/I7/parts/1"; 
var match = /.*\/messages\/([^\/]+)/.exec(s)[1]; 
alert(match); // I7 

正则表达式搜索s"/messages/",然后匹配一切以下,多达但不包括下一个斜杠。