Javascript 计算提交内容的最大字长(以字节为单位)

Javascript 计算提交内容的最大字长(以字节为单位),javascript,Javascript,我想计算javascript中Unicode内容的最大字节字长 像这样 function largestWord(str) { var words = encodeURIComponent(str).replace(/[^a-zA-Z0-9\%]/," ").split("%20"); // we cannot remove the dots since \W kills all foreign chars too alert(words); var longest = "";

我想计算javascript中Unicode内容的最大字节字长

像这样

function largestWord(str) {
  var words = encodeURIComponent(str).replace(/[^a-zA-Z0-9\%]/," ").split("%20"); // we cannot remove the dots since \W kills all foreign chars too
  alert(words);
  var longest = "";
  for (var i=0, n=words.length;i<n;i++) {
    var test = words[i].replace("%2C",""); // we need to get rid of dots and other punktuation here
    alert(test +':'+longest)
    if (test.length > longest.length) longest=test;
  }
  return decodeURIComponent(longest)  
}

document.write(largestWord('Duh disti dusti du dist du Børk, Bårker, Bærkest'));
函数最大字(str){
var words=encodeURIComponent(str).replace(//[^a-zA-Z0-9\%]/,“”)。split(“%20”);//我们无法删除点,因为\W也会杀死所有外来字符
警觉(字);
var=”;
for(var i=0,n=words.length;i longest.length)longest=test;
}
返回组件(最长)
}
文件。书写(最大字('Duh disti du du Børk,Bårker,Bærkest');

这有点滥用,但很有效。在这里,我们使用
replace
的回调来迭代匹配的单词(这里是字母数字和下划线,但您可以更改它),并根据当前的最大长度检查每个匹配单词的长度。

一个单词是什么意思?大概在语法意义上?是最新的三个词还是一个词?句子中的单个词。例如“Hi this is good”。这里的“Hi”、“this”、“is”和“good”是独立的词。Unicode部分有多重要?您真的需要所有字符吗,或者您可以只处理几个欧洲字符吗?或者返回longest.length或返回decodeURIComponent(longest.lengthBetter)?注意,该函数仍然需要处理其他punktuationNice idea,但可以在var str=“Duh disti du dist du Børk,Bårker,Bærkest”上尝试它@mplungjan-它失败了,但您只需更改
\w
即可使其正常工作。JavaScript不支持unicode。如果您想要完全支持unicode,最好的选择可能是一个库,如。使用
encodeURIComponent
是一个聪明的技巧,但它在所有特殊字符上也会失败(尝试使用
@
一个字符或任何其他unicode非字母字符)-遗憾的是,如果您想要真正的支持,您无法绕过它。
:)
var maxLength = 0;
s.replace(/\w+/g, function(g0){ maxLength = Math.max(maxLength, g0.length);});