Improve sanitize regex

The origin sanitize regex expression is \W(which is just equal to the [^a-zA-Z0-9]). CJK character will be matched and be replaced too, that is bad!
There are some better way to sanitize the string, I did a minor modification, and it can fix my current problem.
Maybe a sanitize library is needed if more cases are met.

The tests are updated and they all passed.