有没有一种方法可以使用 javascript 从 PHP 复制 mb_detect_encoding
? 我正在尝试重新创建类似的东西。
isAscii("éton") //false
isAscii("hello") //true
或者有没有办法检查字符串是否已经用 utf-8 编码?
最佳答案
由于所有 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
但是请注意,这不是编码,而是字符来自哪个集合。
关于Javascript 编码检查器 ASCII/UFT8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447116/