Подтвердить что ты не робот

Регулярное выражение JavaScript: символ без цифр

Как я могу удалить число, которому предшествует нецифровая цифра, а затем тире, но оставить предыдущий символ без цифры?

RegExp: /[^\D]4\-/
String: http://localhost/images/4-6-.png
Remove: 4-

4- следует удалить и оставить предыдущие / или -

Это будет работать: /4\-/
Но он также удалит 14- или 44-

Динамический код:

http://jsfiddle.net/flackend/8s9X9/2/

Статический код:

var category_id = 4;
var src         = 'http://localhost/images/4-6-.png';
var regexp      = new RegExp('[^\\D]'+ category_id +'\\-')

$('p').append('regexp: '+ regexp +'<br>');
$('p').append(src +'<br>');

src = src.replace(regexp, '');

$('p').append(src);
4b9b3361

Ответ 1

Вы хотите [\D] или [^\d], но не [^\d]. Regex чувствителен к регистру, \d соответствует цифре, а \d соответствует чему-либо, кроме цифры.