$('#price').keyup(function(){
$('#price').val($('#price').val().replace(/[_\W]+/g, "-"));
})
看实际效果:http://jsfiddle.net/2KRHh/6/。
这将删除特殊字符,但是我该如何指定不替换点号?
$('#price').keyup(function(){
$('#price').val($('#price').val().replace(/[_\W]+/g, "-"));
})
/[^\w.]|_/g
该代码读取除了字母数字(包括下划线)或句点以外的任何字符,或者是下划线。
更新
但这段代码可能更易读:
/[^0-9a-zA-Z.]/g
/([^\w.])|_/g
另外,为什么在[^\w.]
字符类周围添加了一个捕获组? - sigpwned虽然这个方法有点老了,但如果有人仍然需要它,Faust的答案对我没有用(我试图更改文件名以在URL中使用它),所以这是我找到的解决方案:
preg_replace('/[^A-Za-z0-9.\-]/', '', $string);