2015-05-04 152 views
0

我需要能夠抓取URL末尾的數字,並將其設置爲文本框的值。我有以下內容,但是在最後一個斜槓之前沒有正確刪除URL的開頭。相反,它做相反的事情。在javascript中使用正則表達式獲取最後一個斜槓後的URL末尾

<input id="imageid"></input> 

var referrerURL = "http://subdomain.xx-xxxx-x.xxx.url.com/content/assets/750"; 
var assetID = referrerURL.match("^(.*[\\\/])"); 
$("#imageid").val(assetID); 

正則表達式匹配應該在這種情況下,文本框的值設置爲750的結果。

的jsfiddle:Link

回答

6

的簡單的方法是使用一個否定的字符類作爲

/[^\/]*$/ 

Regex Demo

var referrerURL = "http://subdomain.xx-xxxx-x.xxx.url.com/content/assets/750"; 
alert(referrerURL.match(/[^\/]*$/)); 
// Output 
// => 750 
+0

完美,謝謝! – Matt

+0

@Matt歡迎:) – nu11p01n73R

+0

會做什麼,只是等待計時器結束(顯然不能很快接受答案) – Matt

0

可以使用一個簡單的分裂(),然後pop()方法得到的陣列

var assetID = referrerURL.split('/').pop(); 

更容易比一個正則表達式這樣讀很清楚它在做什麼

DEMO

0

你可以嘗試避免只需使用原生javascript的字符串函數即可使用正則表達式進行此任務。

  • 拆分文本:

    var lastSlashToken = referrerURL.split("/").pop(-1); 
    
  • 往上看最後的結局 「/文本」 令牌:

    var lastSlashToken = referrerURL.substr(referrerURL.lastIndexOf("/") + 1); 
    

然而,如果你仍然想使用定期表達此任務,您可以嘗試使用以下模式:

.*\/([^$]+) 

Regular expression visualization

工作DEMO例子@regex101

1

var referrerURL = "http://subdomain.xx-xxxx-x.xxx.url.com/content/assets/750"; 
 
var myregexp = /.*\/(.*?)$/; 
 
var match = myregexp.exec(referrerURL); 
 
$("#imageid").val(match[1]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input id="imageid"></input>

相關問題