Я относительно новичок в RegEx и пытаюсь добиться чего-то, что, как мне кажется, может быть довольно простым для кого-то более опытного, чем я.
Я хотел бы создать фрагмент в JavaScript, который будет принимать входные данные и удалять все до и включая определенный символ - в данном случае подчеркивание.
Таким образом, 0_test
, 1_anotherTest
, 2_someOtherTest
станут test
, anotherTest
и someOtherTest
соответственно.
Заранее спасибо!
2 ответа
Просто прочитайте с его позиции до конца:
var str = "2_someOtherTest";
var res = str.substr(str.indexOf('_') + 1);
Вы можете использовать следующее регулярное выражение (что может быть хорошо, только если ваш специальный символ не известно, см. решение Алекса только для _
):
^[^_]*_
Пояснение:
^
- начало строки[^_]*
– любое количество символов, кроме_
._
— подчеркивание
И замените пустой строкой.
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/
).
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.