2012-11-08 39 views
2

我需要编辑我的脚本才能获得ref = '521590819123';正则表达式javascript

怎么样?

<script type="text/javascript"> 
var ref = "http://www.site.ru/profile/521590819123"; 
if(ref.indexOf('profile') >= 0) { 
    ref = String(ref).substr(ref.indexOf('profile')); 
} 
alert(ref); 
</script> 
+0

' ref = String(ref).substr(ref.indexOf('profile'));'应该是'ref = String(ref).substr(ref.indexOf('pro文件')+ 8);'as'profile /'长度为8个字符。 – h2ooooooo

回答

2

无需使用正则表达式:

var tokens = ref.split('/'); 
var whatyouwant = tokens[tokens.length-1]; 

Demonstration

如果你真的想用一个正则表达式,你可以做

var whatyouwant = /([^\/]+$)/.exec(ref)[0]; 

Demonstration

0

刚刚的indexOf改变LastIndexOf

ref = String(ref).substr(ref.lastIndexOf('/')+1); 
0

使用lastIndexOf

<script type="text/javascript"> 
    var ref = "http://www.site.ru/profile/521590819123"; 
    if(ref.indexOf('profile') >= 0) { 
    ref = ref.substr(ref.lastIndexOf('/') + 1); 
    } 
    alert(ref); 
</script> 

在这里看到:http://jsfiddle.net/CFeVV/

+0

非常感谢您的帮助 – user1779868

0

,如果你想解决的正则表达式这个任务,使用:

ref = ref.replace(/^.*\/(\d+)$/g, "$1")