Maison interface Web js tutoriel javascript下string.format函数补充_javascript技巧

javascript下string.format函数补充_javascript技巧

May 16, 2016 pm 06:20 PM
format string

又重新阅读了一遍Andrew的原文,在原文下面的评论中,赫然发现也有人早提出参数个数的问题,同样懒惰的楼猪直接拷贝原文评论答复了一下,同时还发现说漏了很重要的一个注意点Array.prototype.slice。
下面统一补充说明一下:

1、string.format的参数个数
在Andrew的原文中,已经有人指出:

eric d. Hi, thanks for that brilliant article. Made a lot of things a lot clearer!
Note: new RegExp("%([1-" + arguments.length + "])", "g"); will fail passed 9 arguments (the regexp would be "%([1-10])" so it will only match %0 and %1).

I think an easy fix would be something like:
function format(string) { var args = arguments; var pattern = new RegExp("%([0-9]+)", "g"); return String(string).replace(pattern, function(match, index) { if (index == 0 || index >= args.length) throw "Invalid index in format string"; return args[index]; }); };
(Sorry for nitpicking, I understand it was only an example and brevety is the main objective, but its a great function to have)

Posted on: January 20th 2009, 12:01 am

这个留言的家伙给足了作者面子,称“I understand it was only an example and brevety is the main objective, but its a great function to have”。原来,原文中定义的正则表达式能够验证的数字范围是...原来如此啊,哈哈,楼猪心虚的笑了。

2、Array.prototype.slice
将arguments转换成Array的方法是通过Array.prototype.slice.call(arguments);方式转换的,也就是说类数组方式的对象都可以通过slice的方式实现到Array的转换,说到类数组对象的转换,真的很有必要重新记录总结一下Array的原型方法slice。
(1)、常见用法
楼猪在早前的这篇里通过一段代码一带而过介绍过slice方法:slice(start,end):返回数组对象的一个子集,索引从start开始(包括 start),到end结束(不包括end),原有数组不受影响。其实我们可以大胆猜测slice函数内部应该是定义了一个数组变量,然后通过循环,将数组对应索引值push进变量,最后return这个Array变量。
(2)、“不是Array,我们也想要变成Array”
不是Array,但是有length属性,可以根据索引取值,比如本文中的arguments,我们可以通过下面的方式转换为真实数组:

复制代码 代码如下:

function test() {
var args = Array.prototype.slice.call(arguments);
alert(args.length);
args.push("jeff"); //push
args.push("wong");
alert(args.length); //2
alert(args.pop()); //pop
alert(args.length); //1
}
test();

我们看到push和pop方法都起作用了。同样,Nodelist也有类似特性。怎么样将NodeList转换成Array?看过楼猪原文的读者可能会觉得这都是陈词滥调,还是多说一句,在IE下,Array.prototype.slice.call(nodelist)就不是那么回事了,最后再贴一次将NodeList转换为Array并且兼容ie和其他浏览器的方法结束本文:
复制代码 代码如下:

var nodelist =something;//一个NodeList变量
var arr = null; //数组
try { //ie
arr = new Array();
for (var i = 0; i arr.push(nodelist[i]);
}
} catch (e) {//其他浏览器
arr = Array.prototype.slice.call(nodelist);
}

作者:Jeff Wong
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Convertissez les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Convertissez les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Jul 24, 2023 pm 07:55 PM

Convertir les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Dans le développement Java, lorsque nous devons convertir les types de données de base en chaînes, une méthode courante consiste à utiliser la fonction valueOf() de la classe String. Cette fonction peut accepter les paramètres des types de données de base et renvoyer la représentation sous forme de chaîne correspondante. Dans cet article, nous explorerons comment utiliser la fonction String.valueOf() pour les conversions de types de données de base et fournirons quelques exemples de code pour

Comment convertir un tableau de caractères en chaîne Comment convertir un tableau de caractères en chaîne Jun 09, 2023 am 10:04 AM

Méthode de conversion d'un tableau de caractères en chaîne : cela peut être réalisé par affectation. Utilisez la syntaxe {char a[]=" abc d\0efg ";string s=a;} pour laisser le tableau de caractères attribuer directement une valeur à la chaîne et l'exécuter. le code pour terminer la conversion.

Utilisez la fonction String.replace() de Java pour remplacer des caractères (chaînes) dans une chaîne Utilisez la fonction String.replace() de Java pour remplacer des caractères (chaînes) dans une chaîne Jul 25, 2023 pm 05:16 PM

Remplacez les caractères (chaînes) dans une chaîne à l'aide de la fonction String.replace() de Java. En Java, les chaînes sont des objets immuables, ce qui signifie qu'une fois qu'un objet chaîne est créé, sa valeur ne peut pas être modifiée. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez remplacer certains caractères ou chaînes dans une chaîne. À l'heure actuelle, nous pouvons utiliser la méthode replace() dans la classe String de Java pour implémenter le remplacement de chaîne. La méthode replace() de la classe String a deux types :

Explication détaillée de 2 mots en chaîne, yyds Explication détaillée de 2 mots en chaîne, yyds Aug 24, 2023 pm 03:56 PM

Bonjour à tous, aujourd'hui je vais partager avec vous les connaissances de base de Java : String. Inutile de dire l'importance de la classe String, on peut dire que c'est la classe la plus utilisée dans notre développement back-end, il est donc nécessaire d'en parler.

Compétences en matière de conversion d'octets, de runes et de types de chaînes Golang Compétences en matière de conversion d'octets, de runes et de types de chaînes Golang May 17, 2023 am 08:21 AM

Dans la programmation Golang, les types octet, rune et chaîne sont des types de données très basiques et courants. Ils jouent un rôle important dans le traitement des opérations de données telles que les chaînes et les flux de fichiers. Lors de l'exécution de ces opérations de données, nous devons généralement les convertir les unes aux autres, ce qui nécessite la maîtrise de certaines compétences de conversion. Cet article présentera les techniques de conversion de types d'octets, de runes et de chaînes des fonctions Golang, dans le but d'aider les lecteurs à mieux comprendre ces types de données et à être capables de les appliquer habilement dans la pratique de la programmation.

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne Jul 25, 2023 am 09:09 AM

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne. En programmation Java, la chaîne est un type de données très courant. Nous avons souvent besoin d'obtenir la longueur d'une chaîne, c'est-à-dire le nombre de caractères qu'elle contient. En Java, nous pouvons utiliser la fonction length() de la classe String pour obtenir la longueur d'une chaîne. Voici un exemple de code simple : publicclassStringLengthExample{publ

Comment utiliser la classe String de Java Comment utiliser la classe String de Java Apr 19, 2023 pm 01:19 PM

1. Comprendre String1. String dans le JDK Tout d'abord, jetons un coup d'œil au code source de la classe String dans le JDK. Il implémente de nombreuses interfaces. Vous pouvez voir que la classe String est modifiée par final. être hérité et il n'y a pas de sous-classe de la classe String, de sorte que toutes les personnes utilisant JDK utilisent la même classe String. Si String peut être hérité, tout le monde peut étendre String. Tout le monde utilise différentes versions de String. la même méthode montre des résultats différents, ce qui rend impossible le développement du code. L'héritage et le remplacement de méthode apportent non seulement de la flexibilité, mais entraînent également un comportement différent de nombreuses sous-classes.

Comment utiliser la méthode split dans Java String Comment utiliser la méthode split dans Java String May 02, 2023 am 09:37 AM

La méthode split dans String utilise la méthode split() de String pour diviser la chaîne en fonction des caractères ou des chaînes entrants et renvoyer le tableau divisé. 1. Utilisation générale Lors de l'utilisation de caractères généraux, tels que @ ou, comme séparateurs : Stringaddress="Shanghai@Shanghai City@Minhang District@Wuzhong Road";String[]splitAddr=address.split("@");System .out. println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3

See all articles