用正则表达式替换Javascript

用正则表达式替换Javascript,javascript,regex,slug,Javascript,Regex,Slug,我正在使用RegExp生成slug。我是说“替换所有字符”与以下模式不匹配: str = str.replace(new RegExp('[^a-z0-9-]','g'), ''); 它可以工作,但我需要问它是否是正确的方式/语法/方法 谢谢你的建议。1)你可以写 new RegExp('[^a-z0-9-]','g') 作为 您编写的正则表达式代表以下内容: 2) []中的任何字符都不是序列,但当[^]开头出现扬抑符时,它表示不在 3) a-z代表从a到z的所有字符(小写字母) 4) 0

我正在使用RegExp生成slug。我是说“替换所有字符”与以下模式不匹配:

str = str.replace(new RegExp('[^a-z0-9-]','g'), '');
它可以工作,但我需要问它是否是正确的方式/语法/方法

谢谢你的建议。

1)你可以写

new RegExp('[^a-z0-9-]','g')
作为

您编写的正则表达式代表以下内容:

2) []中的任何字符都不是序列,但当[^]开头出现扬抑符时,它表示不在

3)
a-z
代表从a到z的所有字符(小写字母)

4)
0-9
表示0到9以及结尾的连字符(-)。。。好吧,连字符

因此,您希望保留哪些字符?如果只想保留字母数字,则使用
/[^A-Za-z0-9]/g
(这是区分大小写的版本)或
/[^A-z0-9]/gi
不区分大小写

修饰符/标志:
g
=全局,
i
=不区分大小写

一个很好的地方:你可以写

new RegExp('[^a-z0-9-]','g')
作为

您编写的正则表达式代表以下内容:

2) []中的任何字符都不是序列,但当[^]开头出现扬抑符时,它表示不在

3)
a-z
代表从a到z的所有字符(小写字母)

4)
0-9
表示0到9以及结尾的连字符(-)。。。好吧,连字符

因此,您希望保留哪些字符?如果只想保留字母数字,则使用
/[^A-Za-z0-9]/g
(这是区分大小写的版本)或
/[^A-z0-9]/gi
不区分大小写

修饰符/标志:
g
=全局,
i
=不区分大小写

一个很好的地方:你可以写

new RegExp('[^a-z0-9-]','g')
作为

您编写的正则表达式代表以下内容:

2) []中的任何字符都不是序列,但当[^]开头出现扬抑符时,它表示不在

3)
a-z
代表从a到z的所有字符(小写字母)

4)
0-9
表示0到9以及结尾的连字符(-)。。。好吧,连字符

因此,您希望保留哪些字符?如果只想保留字母数字,则使用
/[^A-Za-z0-9]/g
(这是区分大小写的版本)或
/[^A-z0-9]/gi
不区分大小写

修饰符/标志:
g
=全局,
i
=不区分大小写

一个很好的地方:你可以写

new RegExp('[^a-z0-9-]','g')
作为

您编写的正则表达式代表以下内容:

2) []中的任何字符都不是序列,但当[^]开头出现扬抑符时,它表示不在

3)
a-z
代表从a到z的所有字符(小写字母)

4)
0-9
表示0到9以及结尾的连字符(-)。。。好吧,连字符

因此,您希望保留哪些字符?如果只想保留字母数字,则使用
/[^A-Za-z0-9]/g
(这是区分大小写的版本)或
/[^A-z0-9]/gi
不区分大小写

修饰符/标志:
g
=全局,
i
=不区分大小写



一个好地方可以看:

你可以这样做,或者
str=str.replace(/[^A-z0-9-]/g),”最后一个连字符也是错误的-
“*&%^$--KJHKJH”。替换(/[^a-z0-9]/g')
@epoch最后一个hypen是错误的?连字符是字符类中的特殊字符,应该转义。您可以这样做,或者
str=str.replace(/[^a-z0-9-]/g),“”)最后一个连字符也是错误的-
“*&%^$--KJHKJH”。替换(/[^a-z0-9]/g')
@epoch最后一个hypen是错误的?连字符是字符类中的特殊字符,应该转义。您可以这样做,或者
str=str.replace(/[^a-z0-9-]/g),“”)最后一个连字符也是错误的-
“*&%^$--KJHKJH”。替换(/[^a-z0-9]/g')
@epoch最后一个hypen是错误的?连字符是字符类中的特殊字符,应该转义。您可以这样做,或者
str=str.replace(/[^a-z0-9-]/g),“”)最后一个连字符也是错误的-
“*&%^$--KJHKJH”。替换(/[^a-z0-9]/g') @ EPOCH,其中最后一个Hypple是错误的。连字符是字符类中的特殊字符,它应该被转义。虽然这基本上是一个很好的答案,但您可能想考虑一个更好的格式,例如使用更多的代码块(除其他事项外),以增加可读性,从而使它成为一个更好的答案。谢谢你的建议。希望这个格式有帮助。老实说,我还没有研究过格式选项,我不知道除了在新行中添加代码和四个字符的缩进外,还能做什么。现在看起来好多了:)随着时间的推移,你将研究所有这些格式设置,并习惯它们。@YahyaE只需添加另一个(你可能想了解一下:))在第一个位置,只允许字符。@YahyaE这应该可以做到:
src=src.replace(新的RegExp(“[^a-z0-9-]*”,“gi”),“)。replace(新的RegExp([^a-z]?([a-z0-9-]),“i”),“$1”)虽然这基本上是一个很好的答案,但您可能需要考虑一个更好的格式,例如使用更多的代码块(除其他事项外),以增加可读性,从而使它成为一个更好的答案。谢谢你的建议。希望这个格式有帮助。老实说,我还没有研究过格式选项,我不知道除了在新行中添加代码和四个字符的缩进外,还能做什么。现在看起来好多了:)随着时间的推移,你会研究所有这些格式设置,你会习惯它们的。@YahyaE只需添加另一个(你可能想要)