我有一个直接的经典ASP页面,用户可以输入任何标准键盘键和Enter键(如果他们愿意,甚至可以输入特殊的ALT nnn值)
当前的HTML代码如下:
Enter your message - Characters left
<input type="text" name="chl" value="<%=Cclen%>" size=3 diabled readonly>
<br />
<textarea id="SMSmsg" name="SMSmessage" MAXLENGTH="600" rows=5 cols=35 onKeyUp="textCounter(this)"></textarea>
JavaScript函数 testcounter 目前使用 indexOf(“\ n”),每次释放一个键时,它会遍历整个 textarea 。我还需要确定是否已输入其他特殊字符,因为他们在发送短信时可以使用2个字符
总之,任何人都可以建议一些JS代码,让我确定用户输入的每个字符(最好把它变成ascii值),这样我就可以准确计算出字数并将其显示给用户它超过 160限制,但我也可以在发送短信时处理306个字符和最多457个字符
也许 MATCH 功能可能就行了,因为它只需检查整个字符串一次,但任何其他建议非常感谢
如果有人需要JS代码,请提前致谢并道歉
答案 0 :(得分:2)
听起来你想听 keypress 事件,然后当你让用户粘贴到<textarea>
时会发生什么?此外, JavaScript 不允许您选择字符编码并执行 UTF-16 中的所有操作,而不是 ASCII 。
如果您想计算字节数,那么最佳解决方案实际上可能是转换为 Blob 并采用尺寸
function getByteLength(str_data) {
var b = new Blob([str_data]);
return b.size;
}
getByteLength('a\u2020b'); // 5
答案 1 :(得分:0)
var arrayOfCharacters = document.getElementById('SMSmsg').value.split('');
var numberOfCharacters = arrayOfCharacters.length;