JavaScript正则表达式:非数字字符

jar*_*ack 33 javascript regex

我怎么说删除一个以非数字开头的数字后跟一个破折号,但是留下前面的非数字字符?

RegExp: /[^\D]4\-/
String: http://localhost/images/4-6-.png
Remove: 4-
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

qJa*_*ake 83

你想[\D][^\d],但不是[^\D].正则表达式区分大小写,\d匹配一个数字,并\D匹配除数字之外的任何内容.