使用JavaScript正则表达式检测字符串中的非英文字符
检测字符串中的非英文字符
嘿,这个需求挺明确的!要判断字符串里有没有俄文、中文这类非英文字符,同时允许数字、下划线、连字符、点号这些符号对吧?用正则表达式就能轻松搞定,给你写个简单的JavaScript函数:
function hasNonEnglishChars(str) { // 匹配所有不在英文字母、数字、下划线、连字符、点号范围内的字符 const regex = /[^a-zA-Z0-9_\-.]/; return regex.test(str); }
咱们来测试你给的几个例子:
hasNonEnglishChars("отправка.py")→ 返回true(因为包含俄文字符)hasNonEnglishChars("bla.py")→ 返回false(全是允许的字符)hasNonEnglishChars("bla23.py")→ 返回false(数字也允许)hasNonEnglishChars("bla23_.py")→ 返回false(下划线没问题)
简单解释下这个正则:[^...] 是反向匹配,意思是匹配任何不在括号里的字符。括号里的a-zA-Z覆盖大小写英文字母,0-9是数字,_\-.是允许的符号(注意连字符-放在最后或者转义,避免被当成范围符)。如果之后需要加其他允许的符号,直接把符号加到括号里就行,比如要允许@,就改成[^a-zA-Z0-9_\-.@]。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

