Javascript 正则表达式-替换除点以外的特殊字符
请访问:Javascript 正则表达式-替换除点以外的特殊字符,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,请访问: 这将删除特殊字符,但如何指定它不替换点?将其用于正则表达式: $('#price').keyup(function(){ $('#price').val($('#price').val().replace(/[_\W]+/g, "-")); }) 它读取的字符既不是字母数字字符(包括下栏),也不是点字符,或者是下栏字符 更新 但这或许更具可读性: /[^\w.]|_/g 它现在有点旧了,但万一有人还需要它,Faust的答案对我来说不起作用(我试图更改文件名以在UR
这将删除特殊字符,但如何指定它不替换点?将其用于正则表达式:
$('#price').keyup(function(){
$('#price').val($('#price').val().replace(/[_\W]+/g, "-"));
})
它读取的字符既不是字母数字字符(包括下栏),也不是点字符,或者是下栏字符
更新但这或许更具可读性:
/[^\w.]|_/g
它现在有点旧了,但万一有人还需要它,Faust的答案对我来说不起作用(我试图更改文件名以在URL中使用它),因此我找到了以下解决方案:
/[^0-9a-zA-Z.]/g
这可能不是实现你想要的目标的好方法。假设我用鼠标复制并粘贴一些特殊字符,它不会触发keyup函数。您可以更改正则表达式,以列出要保留的字符,而不是要替换的字符。与^operator组合。几乎重复:我想您是想在正则表达式中添加“\”:
/([^\w.])|/g
此外,为什么要在[^\w.]
字符类周围添加捕获组?但这也会替换数字。这应允许数字0-9和numbers@sigpwned:捕获组不是必需的。@Horn:w表示任何数字、字母或u的字符,而字符类开头的“^”表示任何不属于这些字符的字符,因此这不会替换数字。请重读问题,他们希望替换除点以外的特殊字符,所以连字符必须被删除。
preg_replace('/[^A-Za-z0-9.\-]/', '', $string);