Javascript 如何对包含特殊字符和空格的字符串数组进行排序

Javascript 如何对包含特殊字符和空格的字符串数组进行排序,javascript,arrays,string,sorting,special-characters,Javascript,Arrays,String,Sorting,Special Characters,我想对包含特殊字符和空格的字符串数组进行排序。排序时,我想忽略特殊字符,这样数组的排序只基于字符和数字 例如:数组类似于: [“ibtp-17”、“个人(z)”、“个人(a)”、“(z)”、“yabcd”、“y(3)”] 只需要智能逻辑来实现这一点。任何帮助都将不胜感激。谢谢 到目前为止,我已经尝试过使用replace,它有时给出正确的结果,有时给出错误的结果 ["ibtp-17","personal (z)","personal (a)","(z)","yabcd","y(3)"] .s

我想对包含特殊字符和空格的字符串数组进行排序。排序时,我想忽略特殊字符,这样数组的排序只基于字符和数字

例如:数组类似于: [“ibtp-17”、“个人(z)”、“个人(a)”、“(z)”、“yabcd”、“y(3)”]

只需要智能逻辑来实现这一点。任何帮助都将不胜感激。谢谢



到目前为止,我已经尝试过使用replace,它有时给出正确的结果,有时给出错误的结果

 ["ibtp-17","personal (z)","personal (a)","(z)","yabcd","y(3)"]
 .sort(function(a,b){
    return a.replace(/[^A-Z0-9]/ig, "") > b.replace(/[^A-Z0-9]/ig, "")
 }) 

因为我不应该只是发布代码(因为OP首先需要自己尝试一些东西)。这里有一些逻辑:


Array.sort()
采用比较函数。在所述比较函数中,您可以放置一些基于正则表达式的特殊字符剥离器,如
String.replace(/[^a-zA-Z0-9]/g,”)。然后比较结果字符串。干杯。

到目前为止您尝试了什么?
Array.prototype.sort()
使用了一个比较函数。到目前为止,我尝试了使用replace,它有时给出正确的结果,有时给出错误的结果[“ibtp-17”,“personal(z)”,“personal(a)”,“(z)”,“yabcd”,“y(3)”)。排序(函数(a,b){返回a.replace(/[^a-Z0-9]/ig,”)>b.replace(/[^a-Z0-9]/ig,”)`我尝试了您建议的方法,但它似乎无法使用此数组<代码>[“个人(进行中)”、“个人(完成)”、“地区”、“ibtp-17”、“智能”]。排序(函数(a,b){返回a.replace(/[0-9a-zA-Z]/g,”)>b.replace(/[0-9a-zA-Z]/g,”)
。请复制此内容,然后在控制台中运行
[“P”,“i”].sort()
,或者在控制台中运行
“P”>“i”
。您会发现这会导致错误。解决此问题的最简单方法是首先对字符串调用
。toLowerCase()