【发布时间】:2015-11-06 07:48:59
【问题描述】:
我在一个 javascript 开源项目中遇到了这段代码。
validator.isLength = function (str, min, max)
// match surrogate pairs in string or declare an empty array if none found in string
var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [];
// subtract the surrogate pairs string length from main string length
var len = str.length - surrogatePairs.length;
// now compare string length with min and max ... also make sure max is defined(in other words, max param is optional for function)
return len >= min && (typeof max === 'undefined' || len <= max);
};
据我了解,上面的代码正在检查字符串的长度,但没有考虑代理对。所以:
我对代码的理解正确吗?
什么是代理对?
到目前为止,我只发现这与编码有关。
【问题讨论】:
标签: javascript string encoding utf string-length