Maison >interface Web >js tutoriel >Résumé des chaînes d'interception avec les compétences javascript_javascript
Cet article résume et présente trois méthodes d'interception de chaînes à l'aide de Javascript. Il résume également deux méthodes d'interception de chaînes chinoises. Veuillez les partager.
Méthode 1.substring
Définition et usage
La méthode substring est utilisée pour extraire les caractères entre deux indices spécifiés dans une chaîne.
Grammaire
stringObject.substring(start,stop)
Description du paramètre
le démarrage est nécessaire. Entier non négatif qui spécifie la position dans stringObject du premier caractère de la sous-chaîne à extraire.
l'arrêt est facultatif. Un entier non négatif qui représente une position dans stringObject qui est une de plus que le dernier caractère de la sous-chaîne à extraire. Si ce paramètre est omis, la sous-chaîne renvoyée ira à la fin de la chaîne.
Valeur de retour
Une nouvelle valeur de chaîne contenant une sous-chaîne de stringObject contenant tous les caractères du début à l'arrêt-1 et ayant une longueur de stop moins start.
Description
La sous-chaîne renvoyée par la méthode substring inclut les caractères de début mais pas les caractères de fin.
Si le début et la fin sont égaux, cette méthode renvoie une chaîne vide (c'est-à-dire une chaîne de longueur 0).
Si start est supérieur à end, la méthode échange les deux paramètres avant d'extraire la sous-chaîne.
Si le début ou la fin est négatif, il est remplacé par 0.
Cas d'utilisation spécifiques :
var str = "0123456789"; alert(str.substring(0));------------"0123456789" alert(str.substring(5));------------"56789" alert(str.substring(10));-----------"" alert(str.substring(12));-----------"" alert(str.substring(-5));-----------"0123456789" alert(str.substring(-10));----------"0123456789" alert(str.substring(-12));----------"0123456789" alert(str.substring(0,5));----------"01234" alert(str.substring(0,10));---------"0123456789" alert(str.substring(0,12));---------"0123456789" alert(str.substring(2,0));----------"01" alert(str.substring(2,2));----------"" alert(str.substring(2,5));----------"234" alert(str.substring(2,12));---------"23456789" alert(str.substring(2,-2));---------"01" alert(str.substring(-1,5));---------"01234" alert(str.substring(-1,-5));--------""
Méthode 2.substr
Définition et usage
La méthode substr est utilisée pour renvoyer une sous-chaîne d'une longueur spécifiée commençant à une position spécifiée.
Grammaire
stringObject.substr(start [, length ])
Description du paramètre
le démarrage est nécessaire. La position de départ de la sous-chaîne souhaitée. Le premier caractère de la chaîne a l'index 0.
la longueur est facultative. Le nombre de caractères qui doivent être inclus dans la sous-chaîne renvoyée.
Description
Si la longueur est 0 ou négative, une chaîne vide est renvoyée.
Si ce paramètre n'est pas spécifié, la sous-chaîne sera continuée jusqu'à la fin de stringObject.
Cas d'utilisation spécifiques :
var str = "0123456789"; alert(str.substr(0));---------------"0123456789" alert(str.substr(5));---------------"56789" alert(str.substr(10));--------------"" alert(str.substr(12));--------------"" alert(str.substr(-5));--------------"0123456789" alert(str.substr(-10));-------------"0123456789" alert(str.substr(-12));-------------"0123456789" alert(str.substr(0,5));-------------"01234" alert(str.substr(0,10));------------"0123456789" alert(str.substr(0,12));------------"0123456789" alert(str.substr(2,0));-------------"" alert(str.substr(2,2));-------------"23" alert(str.substr(2,5));-------------"23456" alert(str.substr(2,12));------------"23456789" alert(str.substr(2,-2));------------"" alert(str.substr(-1,5));------------"01234" alert(str.substr(-1,-5));-----------""
3. Méthode personnalisée
Les deux méthodes ci-dessus ne peuvent intercepter que l'anglais et les chiffres. Vous ne pouvez rien faire lorsque vous rencontrez du chinois qui entraînera des caractères tronqués. Après ma propre certification et mes propres recherches, j'ai finalement résumé deux méthodes qui peuvent utiliser Javascript pour intercepter. chaînes contenant la méthode chinoise :
Première méthode :
String.prototype.sub=function(n){ var r=/[^\x00-\xff]/g; if(this.replace(r,"mm").length<=n){return this;} var m=Math.floor(n/2); for(var i=m;i<this.length;i++){ if(this.substr(0,i).replace(r,"mm").length>=n){ return this.substr(0,i)+"..."; } } return this; }
Deuxième méthode :
//Chaîne d'interception, y compris le traitement chinois, signification du paramètre : (chaîne, longueur d'interception, s'il faut augmenter...)
function subString(str, len, hasDot){ var newLength=0; var newStr=""; var chineseRegex=/[^\x00-\xff]/g; var singleChar=''; var strLength=str.replace(chineseRegex,'**').length; for(var i=0;i < strLength;i++){ singleChar=str.charAt(i).toString(); if(singleChar.match(chineseRegex) != null){ newLength+=2; }else{ newLength++; } if(newLength>len){ break; } newStr+=singleChar; } if(hasDot && strLength>len){ newStr+='...'; } return newStr; }
La méthode d'utilisation spécifique d'utilisation de Js pour intercepter les chaînes chinoises est la suivante :
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Javascript字符串截取处理总结(Js截取中文字符串总结)</title> <script language="javascript"> String.prototype.sub=function(n){var r=/[^\x00-\xff]/g;if(this.replace(r,"mm").length<=n){return this}var m=Math.floor(n/2);for(var i=m;i<this.length;i++){if(this.substr(0,i).replace(r,"mm").length>=n){return this.substr(0,i)+"..."}}return this}; function subString(str,len,hasDot){var newLength=0;var newStr="";var chineseRegex=/[^\x00-\xff]/g;var singleChar='';var strstrLength=str.replace(chineseRegex,'**').length;for(var i=0;i<strLength;i++){singleChar=str.charAt(i).toString();if(singleChar.match(chineseRegex)!=null){newLength+=2}else{newLength++}if(newLength>len){break}newStr+=singleChar}if(hasDot&&strLength>len){newStr+='...'}return newStr} </script> </head> <body> <script language="javascript"> var str='我爱www.jb51.net'; alert(str.sub(10)); alert(subString(str,10,false)); </script> </body> </html>
Ce qui précède représente tout le contenu de cet article, j'espère que vous l'aimerez tous.