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

时间:2012-02-07 21:19:59

标签: javascript regex

如何删除以非数字开头且后跟短划线的数字,但保留前面的非数字字符?

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);

1 个答案:

答案 0 :(得分:77)

您需要[\D][^\d],而不是[^\D]。正则表达式区分大小写,\d匹配数字,\D匹配除数字之外的任何内容。