How do I say remove a number preceded by a non-digit and followed by a dash, but leave the preceding non-digit character?
RegExp: /[^\D]4\-/
String: http://localhost/images/4-6-.png
Remove: 4-
The 4- should be removed and it should leave the preceding / or -
This would work: /4\-/
But it would also remove 14- or 44-
Dynamic Code:
http://jsfiddle.net/flackend/8s9X9/2/
Static Code:
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);
You want
[\D]or[^\d], but not[^\D]. Regex is case-sensitive,\dmatches a digit, and\Dmatches anything but a digit.