首页 > 解决方案 > Javascript 编码检查器 ASCII/UFT8

问题描述

有没有办法mb_detect_encoding用 javascript 从 PHP 复制?我正在尝试重新创建这样的东西。

 isAscii("éton") //false
 isAscii("hello") //true

或者有没有办法检查一个字符串是否已经用 utf-8 编码?

标签: javascriptutf-8character-encoding

解决方案


由于所有 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

但是请注意,这不是编码,它是字符的来源。


推荐阅读