有一个问题。对不起,我的英语。
我有一个字符串。客户在文本区域输入SMS文本。
如何在字符串处找到utf-16
的现有字符?
在php上,我检查以下代码:
if (iconv("UTF-8","UTF-8//IGNORE",$_entry_text) != $_entry_text) {
// exist utf-16
}
如何使用Javascript检查?尝试在第二天找到答案((
谢谢。
答案 0 :(得分:1)
字符串是一系列字符,每个字符都有一个字符代码。 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”);一样使用它
答案 1 :(得分:0)
如果它是一个短字符串,一种方法是只检查它的长度,然后检查是否有任何字符代码位于单字节0-255范围之外
if (_entry_text.charCodeAt(i) > 255) ...
答案 2 :(得分:0)
我认为不需要循环;
var ascii = /^[ -~]+$/;
ascii.test("Sefa"); // it is true no non-ascii characters
ascii.test("Sefa£"); // it is false there is non-ascii character