function palindrome(str) { return str.replace(/[\W_]/g,'').toLowerCase() === str.replace(/[\W_]/g,'').toLowerCase().split('').reverse().join(''); } palindrome("0_0 (: /-\ :) 0-0"); 为什么\W没有匹配到下划线_ \W不是匹配非文字和数字吗?