<code> function palindrome(str) { return str.replace(/[\W_]/g,'').toLowerCase() === str.replace(/[\W_]/g,'').toLowerCase().split('').reverse().join(''); } palindrome("0_0 (: /-\ :) 0-0"); </code>
为什么\W
没有匹配到下划线_ \W
不是匹配非文字和数字吗?
<code> function palindrome(str) { return str.replace(/[\W_]/g,'').toLowerCase() === str.replace(/[\W_]/g,'').toLowerCase().split('').reverse().join(''); } palindrome("0_0 (: /-\ :) 0-0"); </code>
为什么\W
没有匹配到下划线_ \W
不是匹配非文字和数字吗?
首先 \w
是匹配数字字母下划线:[0-9a-zA-Z_]
,\W
是\w
的非,也就是不匹配数字字母下划线