有没有办法知道字符串中的字符数?
Is there a way to know the number of characters in a string?
此问题涉及多于一个 utf-16 字符的 unicode 字符
string.length returns 字符串中 unicode 16 个字符的数量。但是如果字符超过 1 个 unicode 16 个字符呢?是否可以从实际字符的 string.charAt 而不是 utf-16 片段中获取实际字符数和“真实”值?
var test = "";
console.log(test.length)
var regex = /[\u{1F000}-\u{1F0FF}]/g;
var regex2 = //g
console.log('test: ' + regex.test(test));
console.log('test2: ' + regex2.test(test));
您可以使用展开运算符:
var test = "";
var test2 = [...test];
console.log(test.length);
console.log(test2.length);
关于你的第二个问题,你需要修改正则表达式:
var test = "";
console.log(test.length)
var regex = /[\u{1F000}-\u{1F0FF}]/ug;
var regex2 = //g
console.log('test: ' + regex.test(test));
console.log('test2: ' + regex2.test(test));
另一种选择是使用带有 unicode 标志的 RegExp。
var test = "";
var length = test.match(/./ug).length;
console.log(length);
请注意,在某些情况下,这和使用展开运算符的答案可能会中断。
var test = "Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘";
var length = test.match(/./ug).length;
console.log(length);
要获取特定索引处的字符,您可以使用以下函数。
var test = "";
var charAt = charAt(test);
console.log(charAt);
function charAt(string, index) {
if(!index)
index = 0;
return string.match(/./ug)[index];
}
此问题涉及多于一个 utf-16 字符的 unicode 字符
string.length returns 字符串中 unicode 16 个字符的数量。但是如果字符超过 1 个 unicode 16 个字符呢?是否可以从实际字符的 string.charAt 而不是 utf-16 片段中获取实际字符数和“真实”值?
var test = "";
console.log(test.length)
var regex = /[\u{1F000}-\u{1F0FF}]/g;
var regex2 = //g
console.log('test: ' + regex.test(test));
console.log('test2: ' + regex2.test(test));
您可以使用展开运算符:
var test = "";
var test2 = [...test];
console.log(test.length);
console.log(test2.length);
关于你的第二个问题,你需要修改正则表达式:
var test = "";
console.log(test.length)
var regex = /[\u{1F000}-\u{1F0FF}]/ug;
var regex2 = //g
console.log('test: ' + regex.test(test));
console.log('test2: ' + regex2.test(test));
另一种选择是使用带有 unicode 标志的 RegExp。
var test = "";
var length = test.match(/./ug).length;
console.log(length);
请注意,在某些情况下,这和使用展开运算符的答案可能会中断。
var test = "Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘";
var length = test.match(/./ug).length;
console.log(length);
要获取特定索引处的字符,您可以使用以下函数。
var test = "";
var charAt = charAt(test);
console.log(charAt);
function charAt(string, index) {
if(!index)
index = 0;
return string.match(/./ug)[index];
}