是否可以使用JavaScript从PHP复制mb_detect_encoding
?我正在尝试重新创建类似的内容。
isAscii("éton") //false
isAscii("hello") //true
或者有没有办法检查字符串是否已经用utf-8编码?
答案 0 :(得分:2)
由于所有ASCII字符都在\x00
和\x7F
之间,因此您可以简单地使用RegEx测试字符串是否匹配该范围的字符。
RegEx将为/^[\x00-\x7F]*$/
,并使用//.test()
方法返回输入是否符合模式:
function isAscii(str) {
return /^[\x00-\x7F]*$/.test(str);
}
console.log(isAscii("éton")) //false
console.log(isAscii("hello")) //true
正如@duskwuff所指出的那样,检查字符串是否包含非ASCII集合中的任何字符,然后返回与该结果相反的字符会更有效:
function isAscii(str) {
return !/[^\x00-\x7f]/.test(str);
}
console.log(isAscii("éton")) //false
console.log(isAscii("hello")) //true
但是请注意,这不是编码,而是字符的来源集。