Подстрока с обратным индексом

Как я могу извлечь "456" из "xxx_456", где xxx имеет неопределенную длину?

71
задан timbo 13 January 2016 в 00:21
поделиться

8 ответов

var str = "xxx_456";
var str_sub = str.substr(str.lastIndexOf("_")+1);

Если это не всегда три цифры в конце (и разделенные знаком подчеркивания). Если конечный разделитель не всегда является подчеркиванием, вы можете использовать регулярное выражение:

var pat = /([0-9]{1,})$/;
var m = str.match(pat);
70
ответ дан 24 November 2019 в 12:48
поделиться

Простой regex для любого количества цифр в конце строки:

'xxx_456'.match(/\d+$/)[0]; //456
'xxx_4567890'.match(/\d+$/)[0]; //4567890

или действительно используйте split/pop:

('yyy_xxx_45678901').split(/_/).pop(); //45678901
2
ответ дан 24 November 2019 в 12:48
поделиться

Безумный подход с использованием регулярных выражений

"xxx_456".match(/...$/)[0] //456
2
ответ дан 24 November 2019 в 12:48
поделиться

вы можете просто разделить его и получить последний элемент

var string="xxx_456";
var a=string.split("_");
alert(a[1]); #or a.pop
5
ответ дан 24 November 2019 в 12:48
поделиться

вот моя пользовательская функция

function reverse_substring(str,from,to){
  var temp="";
  var i=0;
  var pos = 0;
  var append;      
  for(i=str.length-1;i>=0;i--){
    //alert("inside loop " + str[i]);
    if(pos == from){
         append=true;
    }

    if(pos == to){
         append=false;
         break;
    }
    if(append){
         temp = str[i] + temp;
    }
    pos++;
  }
  alert("bottom loop " + temp);
}

var str = "bala_123";
reverse_substring(str,0,3);

Эта функция работает для обратного индекса.

2
ответ дан 24 November 2019 в 12:48
поделиться

slice отлично работает в IE и других браузерах, это часть спецификации и также самый эффективный метод:

alert("xxx_456".slice(-3));
//-> 456

slice Method ( String) - раздел MSDN
- Центр разработчиков Mozilla

170
ответ дан 24 November 2019 в 12:48
поделиться
alert("xxxxxxxxxxx_456".substr(-3))

предостережение: согласно mdc , несовместимо с IE

3
ответ дан 24 November 2019 в 12:48
поделиться

Метод substring позволяет указать начальный и конечный индекс:

var str = "xxx_456";
var subStr = str.substring(str.length - 3, str.length);
24
ответ дан 24 November 2019 в 12:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: