Ao trabalhar em um projeto, escrevo um pedaço de js para todos. Em relação ao problema de limitação do número de caracteres no texto, ele é frequentemente usado no desenvolvimento real. O principal problema ocorre na restrição do chinês. O código a seguir resolve o problema de verificação de limitação do número de bytes; js e introduza-o na página de verificação e você poderá usá-lo. Ao mesmo tempo, espero que todos lhe dêem um forte apoio e opiniões valiosas. Publicarei mais artigos bons em meu tempo livre no futuro, obrigado!
A seguir está uma citação:
/*
valor: valor;
byteLength: comprimento em bytes do banco de dados
título: campo nome chinês
atributo: nome do atributo
Instruções de uso:
Adicione (1) onkeyup="limitLength(this.value,100,'name','name')"
(2) id="nome" ou [tag de struts] styleId="nome"
Nota: o nome do ID e o nome do atributo devem ser iguais
Exemplo: <textarea name="explicar" id="explicar" onkeyup="limitLength(valor,5,'explicação semântica','explicar')" >
ou
<input type="text" name="explicar" id="explicar" onkeyup="limitLength(valor,5,'explicação semântica','explicar')" >
*/
function limitLength(valor, byteLength, título, atributo) {
var novovalor = valor.replace(/[^x00-xff]/g, "**");
var comprimento = novovalor.comprimento;
//Quando o número de bytes preenchidos for menor que o número de bytes definido
if (comprimento * 1 <=comprimentobyte * 1){
retornar;
}
var limitDate = newvalue.substr(0, byteLength);
var contagem = 0;
var valorlimite = "";
for (var i = 0; i <limitDate.length; i++) {
var flat = limitDate.substr(i, 1);
if (plano == "*") {
contar++;
}
}
var tamanho = 0;
var istar = newvalue.substr(byteLength * 1 - 1, 1);//Se o ponto de verificação é "×"
//se o ponto base for × determine se existe um × no ponto base, se é um número par ou ímpar
if (contagem% 2 == 0) {
//Quando é um número par
tamanho = contagem / 2 + (byteLength * 1 - contagem);
valorlimite = valor.substr(0, tamanho);
} outro {
//Quando é um número ímpar
tamanho = (contagem - 1) / 2 + (byteLength * 1 - contagem);
valorlimite = valor.substr(0, tamanho);
}
alert(title + "Entrada máxima" + byteLength + "bytes (equivalente a "+byteLength /2+" caracteres chineses)!");
document.getElementById(atributo).valor = valorlimite;
retornar;
}