Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式-替换除点以外的特殊字符_Javascript_Jquery_Html_Regex - Fatal编程技术网

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