Die Funktion dieser Funktion besteht darin, die angegebene gemischte Englisch-Chinesisch-Zeichenfolge abzufangen und die Anzeigelänge auf eins zu beschränken. Das bedeutet, ein chinesisches Schriftzeichen als zwei englische Wörter abzufangen. Beschreibung: Die Funktion dieser Funktion besteht darin, die angegebene gemischte Englisch-Chinesisch-Zeichenfolge abzufangen und die Anzeigelänge auf eins zu beschränken. Das bedeutet, ein chinesisches Schriftzeichen als zwei englische Wörter abzufangen.
Zweck: Wird im Allgemeinen in Titelanzeigelisten verwendet, um ein ungleichmäßiges Einfügen abgefangener Zeichenfolgen zu vermeiden.
Programmcode
Kopieren Sie den Codecode wie folgt:
'//A_strString String, der verarbeitet werden soll
'//A_intLen basiert auf der Anzahl der englischen Zeichen
'//A_strAddString Wenn A_strString beim Abfangen von Zeichen ein Suffix hinzugefügt wird, wie zum Beispiel:..., kann es leer sein
Funktion CutString(byval A_strString,byval A_intLen,byval A_strAddString)
Dimmen Sie MM_objRe, MM_objMs, MM_objMh
dimMM_strCut,MM_intLen
setMM_objRe=neuer RegExp
MM_objRe.Global=true'globale Suche
Bei MM_objRe.IgnoreCase=true wird die Groß-/Kleinschreibung nicht beachtet
MM_objRe.Pattern=[^/x00-/xff]
MM_intLen=A_intLen
wenn len(A_strString)<=A_intLen dann
MM_strCut=A_strString
anders
MM_strCut=left(A_strString,MM_intLen)
set MM_objMs=MM_objRe.execute(MM_strCut)
wenn MM_objMs.count<>MM_intLen dann
für jedes MM_objMh in MM_objMs
wenn MM_objMh.FirstIndex<MM_intLen dann
MM_intLen=MM_intLen-1
anders
Ausgang für
Ende wenn
nächste
anders
MM_intLen=MM_intLen/2
Ende wenn
MM_strCut=left(A_strString,MM_intLen) & A_strAddString
Ende wenn
CutString=MM_strCut
setMM_objRe=nichts
Endfunktion
Dies unterscheidet sich von dem, was derzeit im Internet üblich ist, um Nicht-ANSI-Zeichen zu erhalten (die Standard-Nicht-ANSI-Zeichen sind hier chinesische Zeichen. Bei Abweichungen können die regulären Ausdrücke geändert werden, um den Zweck zu erreichen). . Bitte beachten Sie zunächst: Die angegebene Länge der Funktion basiert auf der Anzahl der englischen Zeichen. Das heißt, es wird mit 10 bezeichnet, was 10 englische oder 5 chinesische Zeichen bedeutet.
Es wurden zwei Optimierungen vorgenommen:
Der erste Punkt: Rufen Sie die Zeichen mit der angegebenen Länge direkt ab, denn unabhängig davon, ob es sich um alle chinesischen oder nur um englische Zeichen handelt, ist die längste nur die Länge aller englischen Zeichen, und die darüber hinausgehenden Zeichen sind absolut eliminierte Zeichen.
Zweiter Punkt: Verwenden Sie reguläre Ausdrücke, um chinesische Zeichen innerhalb des Bereichs zu finden, und durchlaufen Sie nur die Anzahl der Wörter jedes chinesischen Zeichens, wodurch die Anzahl der Schleifen minimiert werden kann.