Ich habe ein Textfeld, um SMS-Nachricht sowohl in englischer und chinesischer Sprache. Wie ich gesucht habe, kann 1 SMS nur 1120 Bits haben. Jedes englische Zeichen ist 7 Bit, also kann es 1120/7 = 160 Zeichen sein und für Chinesisch ist jedes Zeichen 16 Bit, also 1120/16 = 70 Zeichen. Ich muss jquery benutzen, um die geschriebenen Wörter und die Wörter zu zeigen, die unter dem Textfeld bleiben. Wie mache ich das?jquery SMS-Zeichen Rechner mit 7-Bit und 16bit
Antwort
Charaktere können einzelne Byte, Doppel-Byte, Dreier- Byte sein ändern und so weiter. So einziges Byte folgt in einer bestimmten range.Same Sache gilt für andere characters.Based dazu habe ich folgende Funktionen erstellt, die die Größe eines Strings auf der Basis von Speicher berechnen wird
function getByteLength(normal_val) {
// Force string type
normal_val = String(normal_val);
var byteLen = 0;
for (var i = 0; i < normal_val.length; i++) {
var c = normal_val.charCodeAt(i);
byteLen += c < (1 << 7) ? 1 :
c < (1 << 11) ? 2 :
c < (1 << 16) ? 3 :
c < (1 << 21) ? 4 :
c < (1 << 26) ? 5 :
c < (1 << 31) ? 6 : Number.NaN;
}
return parseInt(byteLen)*8;
}
ich ein js erstellt haben Geige, die für dich arbeiten wird. http://jsfiddle.net/paraselixir/d83oaa3v/6/
thx paraS elixiR ich werde durchgehen. – Mikethetechy
Warum zählt es 1 Bit für ein Zeichen? soll nicht 8-bit für einen englischen Charakter sein? – Mikethetechy
oh Entschuldigung, es zählt Speicher in Bytes früher, also habe ich den Rückgabewert mit 8 multipliziert. und aktualisierte auch die JFiddle. –
schauen Sie sich unten Schnipsel, dies zählt die Gesamtzahl der Zeichen und die Gesamtzahl der Nachrichten.
können Sie den Wert von $maxVal
bis 160/70
$(document).ready(function() {
var $remaining = $('#charNum'),
$messages = $remaining.prev();
$maxVal = 160;
$('.word-counter').keyup(function(){
var chars = this.value.length,
messages = Math.ceil(chars/$maxVal),
remaining = messages * $maxVal - (chars % (messages * $maxVal) || messages * $maxVal);
$remaining.text(remaining + ' characters remaining');
$messages.text(messages + ' message(s)/');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="" id="SMSMessage" cols="30" rows="2" class="form-ctrl word-counter foo-value"></textarea>
<span class="error-message word-counter">0 message(s)/</span><span id="charNum" class="error-message">160 characters remaining</span>
thx aje für die Antwort, aber ich muss auch chinesische Zeichen zu erkennen – Mikethetechy
gibt es ein Paket, das wir für dieses Problem verwenden können, Kasse: https://github.com/danxexe/sms-counter
- 1. Rechner von JavaScript und jQuery
- 2. Virtualisierung von 16bit CPU, 16bit OS
- 3. PHP Raw 16bit Farbe
- 4. Wert aus 16bit-Register
- 5. Wie verwende ich 16bit heightmaps mit Ogre3d und PhysX
- 6. Rechner Ein- und Ausgang fieldset
- 7. C/C++: Wie konvertiert man 6bit ASCII in 7bit ASCII
- 8. Benutzerdefinierte Rechner mit Spree
- 9. C - Rechner mit Parametern
- 10. Rechner erstellt mit Python
- 11. Java-Rechner mit Swing
- 12. Knoten: Wie 16bit binäre Informationen gesendet werden
- 13. Masm 16bit Konvertierung Ascii zu Byte
- 14. Hash 32bit int zu 16bit int?
- 15. C-Rechner mit Stapel. Ich will diesen Rechner berechnen Realnummer
- 16. Mit Excel als Rechner berechnen
- 17. Vier-Bit-Rechner mit Überlauf
- 18. C++ Postfix Rechner mit Stacks
- 19. Darlehen Rechner mit financial.ppmt Methode
- 20. C# - Rechner - berechnen mit floats
- 21. Rechner mit Befehlszeilenargumenten in C
- 22. Geburtstag Rechner
- 23. Mercurial-Versionen in Server und lokalem Rechner
- 24. Ungültiger Syntaxfehler - Durchschnitt Rechner "IF" und "WHILE"
- 25. Angular benutzerdefinierte Rechner mit mehreren Funktionen
- 26. Perzentil Rechner
- 27. Wie implementiert man einen Infix-Rechner mit Vorrang und Assoziativität
- 28. GPA-Rechner. Probleme mit ODER und Division durch 0
- 29. offline Javascript Ran Autoupdating Rechner und Tabellenkalkulations-
- 30. loop: während und switch basic rechner java
so ein einziger Nachrichtentext entweder in Chinesisch oder in englischer Sprache Recht enthält? –
@paraS elixiR Ja, erlauben Sie die Eingabe einer der beiden Sprachen. – Mikethetechy