正则表达式javascript

时间:2012-11-08 11:58:50

标签: javascript regex

我需要编辑我的脚本才能获得ref = '521590819123';

怎么样?

<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>

4 个答案:

答案 0 :(得分:2)

无需使用正则表达式:

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

Demonstration

如果你真的想使用正则表达式,你可以

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

Demonstration

答案 1 :(得分:0)

只需将indexof更改为LastIndexOf

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

答案 2 :(得分: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/

答案 3 :(得分:0)

如果要通过regexp解决此任务,请使用:

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