gpt4 book ai didi

Javascript 函数在 jquery 中不起作用

转载 作者:行者123 更新时间:2023-12-02 18:42:02 24 4
gpt4 key购买 nike

我想计算短信应用程序输入的字符字节数。如果键入 ASCII,则计为 1 个字节;如果键入非 ASCII,则计为 2 个字节。如果总字符字节超过 80 字节,脚本应发出警报(“您已达到超过 80 字节”),然后应从末尾开始剪切,直到小于 80 字节。但是,cutBylen() 函数似乎在此脚本中不起作用。它只是发出警报,但不会切断字符串。有人能告诉我问题出在哪里吗?非常感谢。

                <script>
function countBytes( str ) {
var count = 0;
for ( var i = 0; i < str.length; i++ ) {
var onechar = str.charAt( i );
if ( str.charCodeAt( i ) >= 128 ) {
count += 2;
} else if ( onechar != '\r' ) {
count++;
}
}
return count;
}
</script>
<script>
function cutByLen( str, byteLen ) {
var tmpStr = str;
while (countBytes( tmpStr ) > byteLen) {
var len = tmpStr.length;
tmpStr = tmpStr.substr( 0, len - 1 );
}
return tmpStr;
}
</script>
<script>
$(document).ready(function() {

$("#smstext1").keyup(function(){
var text = $(this).val();
var byteLen = countBytes(text);
var len = text.length;

if (byteLen >80){
alert('You have reached over 80bytes');

var tmpStr = cutByLen( text, byteLen );

$(this).val(tmpStr);

}


});
});
</script>

最佳答案

你有

var tmpStr = cutByLen( text, byteLen );

其中byteLen是文本的长度,因此如果字符串比自身长,它就会剪切字符串,这显然没有任何作用。您的意思可能是

var tmpStr = cutByLen( text, 80 );

关于Javascript 函数在 jquery 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com