Javascript 如何在字符串中找到字符 "utf-16"

Javascript how can I find character "utf-16" at string

有问题。对不起我的英语。

我有一个字符串。客户在文本区域输入短信文本。 如何在字符串中找到 utf-16 的现有字符?

在 php 我检查了这段代码:

if (iconv("UTF-8","UTF-8//IGNORE",$_entry_text) != $_entry_text) {
  // exist utf-16
}

我如何在 Javascript 检查?第二天尝试找到答案((

谢谢。

如果它是一个短字符串,一种方法是只查看它的长度并检查是否有任何字符代码位于单字节 0-255 范围之外

if (_entry_text.charCodeAt(i) > 255) ...

字符串是一系列字符,每个字符都有一个字符代码。 ASCII 定义了从 0 到 127 的字符,因此如果字符串中的某个字符的代码大于该字符,那么它就是一个 Unicode 字符。这个函数检查那个。参见 String#charCodeAt

function hasUnicode (str) {
    for (var i = 0; i < str.length; i++) {
        if (str.charCodeAt(i) > 127) 
        return true;
    }
    return false;
}

然后像hasUnicode("Test message");

一样使用它

我觉得不需要循环;

var ascii = /^[ -~]+$/;

ascii.test("Sefa"); // it is true no non-ascii characters
ascii.test("Sefa£"); // it is false there is non-ascii character