Я относительно новичок в RegEx и пытаюсь добиться чего-то, что, как мне кажется, может быть довольно простым для кого-то более опытного, чем я.

Я хотел бы создать фрагмент в JavaScript, который будет принимать входные данные и удалять все до и включая определенный символ - в данном случае подчеркивание.

Таким образом, 0_test, 1_anotherTest, 2_someOtherTest станут test, anotherTest и someOtherTest соответственно.

Заранее спасибо!

0
Alex Ryans 14 Апр 2015 в 15:32

2 ответа

Просто прочитайте с его позиции до конца:

var str = "2_someOtherTest";
var res = str.substr(str.indexOf('_') + 1);
0
Alex K. 14 Апр 2015 в 15:36

Вы можете использовать следующее регулярное выражение (что может быть хорошо, только если ваш специальный символ не известно, см. решение Алекса только для _):

^[^_]*_

Пояснение:

  • ^ - начало строки
  • [^_]* – любое количество символов, кроме _.
  • _ — подчеркивание

И замените пустой строкой.

var re = /^[^_]*_/; 
var str = '1_anotherTest';
var subst = ''; 
document.getElementById("res").innerHTML = result = str.replace(re, subst);
<div id="res"/>

Если вам нужно сопоставить перед цифрой, и вы не знаете, какая это может быть цифра, тогда лучше использовать регулярное выражение (с регулярным выражением /^[^0-9]*[0-9]/ или /^\D*\d/).

1
Wiktor Stribiżew 14 Апр 2015 в 15:41
Однако, даже если вы новичок в регулярном выражении, вы должны опубликовать свои собственные попытки. Пожалуйста, укажите их в своем вопросе, в противном случае он будет закрыт и, скорее всего, будет отклонен.
 – 
Wiktor Stribiżew
14 Апр 2015 в 15:58