我尝试了以下代码
str = 'Arc's 弧'
str.replace(/[^a-z\d\s]+/gi,'');
结果显示
Arc039s
预期结果
Arc's
代码有什么问题,是删除中文字符的正确方法,包括标点符号?
提前致谢。
答案 0 :(得分:2)
检查
var str = "Arc's 弧"
alert (str);
// by your regex
alert (str.replace(/[^a-z\d\s]+/gi,''));
// by new regex which removes non-ascii characters
alert(str.replace(/[^\x00-\x7F]/g, ""));
str.replace(/[^a-z\d\s]+/gi,'')
会删除中文字符,但它也会删除'
,因此您的新字符串将为Arcs
,但str.replace(/[^\x00-\x7F]/g, "")
正则表达式会删除非ascii字符,新字符串将为Arc's
。