J'essaie de déplacer du code JavaScript de MicrosoftAjax vers JQuery. J'utilise les équivalents JavaScript dans MicrosoftAjax des méthodes .net populaires, par exemple String.format (), String.startsWith (), etc. Y a-t-il des équivalents dans jQuery?
javascript
jquery
string.format
Waleed Eissa
la source
la source
Réponses:
Le code source d'ASP.NET AJAX est disponible pour votre référence, vous pouvez donc le parcourir et inclure les pièces que vous souhaitez continuer à utiliser dans un fichier JS distinct. Ou, vous pouvez les porter sur jQuery.
Voici la fonction de formatage ...
Et voici les finsAvec et commenceAvec les fonctions prototypes ...
la source
{0}{1}
,{0}
sera remplacé en premier, puis toutes les occurrences de{1}
dans le texte déjà substitué et le format d'origine seront remplacées.Il s'agit d'une variante plus rapide / plus simple (et prototypique) de la fonction que Josh a publiée:
Usage:
Je l'utilise tellement que je l'ai aliasé juste
f
, mais vous pouvez également utiliser le plus verbeuxformat
. par exemple'Hello {0}!'.format(name)
la source
La plupart des fonctions ci-dessus (à l'exception de Julian Jelfs) contiennent l'erreur suivante:
Ou, pour les variantes qui comptent à rebours à partir de la fin de la liste d'arguments:
Voici une fonction correcte. C'est une variante prototypique du code de Julian Jelfs, que j'ai rendu un peu plus serré:
Et voici une version légèrement plus avancée de la même chose, qui vous permet d'échapper aux accolades en les doublant:
Cela fonctionne correctement:
Voici une autre bonne mise en œuvre par Blair Mitchelmore, avec un tas de fonctionnalités supplémentaires intéressantes: https://web.archive.org/web/20120315214858/http://blairmitchelmore.com/javascript/string.format
la source
Création d'une fonction de format qui prend une collection ou un tableau comme arguments
Usage:
Code:
la source
String.prototype
?Il existe une option (quelque peu) officielle: jQuery.validator.format .
Livré avec jQuery Validation Plugin 1.6 (au moins).
Assez semblable au
String.Format
trouvé dans .NET.Modifier le lien cassé fixe.
la source
Si vous utilisez le plugin de validation, vous pouvez utiliser:
jQuery.validator.format("{0} {1}", "cool", "formatting") = 'cool formatting'
http://docs.jquery.com/Plugins/Validation/jQuery.validator.format#templateargumentargumentN ...
la source
Bien que ce ne soit pas exactement ce que le Q demandait, j'en ai construit un qui est similaire mais utilise des espaces réservés nommés au lieu de numérotés. Personnellement, je préfère avoir des arguments nommés et simplement envoyer un objet comme argument (plus verbeux, mais plus facile à maintenir).
Voici un exemple d'utilisation ...
la source
À l'aide d'un navigateur moderne, qui prend en charge EcmaScript 2015 (ES6), vous pouvez profiter des chaînes de modèles . Au lieu de mettre en forme, vous pouvez directement y injecter la valeur de la variable:
Notez que la chaîne de modèle doit être écrite à l'aide de tiques inversées (`).
la source
Aucune des réponses présentées jusqu'à présent n'a d'optimisation évidente de l'utilisation de l'enceinte pour initialiser une fois et stocker les expressions régulières, pour les utilisations suivantes.
De plus, aucun des exemples ne respecte l'implémentation de format () s'il en existe déjà un.
la source
Voici la mienne:
Pas à l'épreuve des balles mais fonctionne si vous l'utilisez judicieusement.
la source
Bien au-delà de la fin de la saison, mais je viens de regarder les réponses données et j'ai ma valeur de tuppence:
Usage:
Méthode:
Résultat:
la source
Vous pouvez maintenant utiliser des modèles de littéraux :
la source
Voici ma version qui est capable d'échapper à «{» et de nettoyer ces espaces réservés non attribués.
la source
La réponse suivante est probablement la plus efficace mais a la mise en garde de ne convenir qu'à 1 à 1 mappages d'arguments. Cela utilise le moyen le plus rapide de concaténer des chaînes (semblable à un constructeur de chaînes: tableau de chaînes jointes). Ceci est mon propre code. Mais il a probablement besoin d'un meilleur séparateur.
Utilisez-le comme:
la source
Cela viole le principe DRY, mais c'est une solution concise:
la source
la source
Je n'ai pas pu obtenir la réponse de Josh Stodola au travail, mais ce qui suit a fonctionné pour moi. Notez la spécification de
prototype
. (Testé sur IE, FF, Chrome et Safari.):s
devrait vraiment être un clone dethis
ne pas être une méthode destructrice, mais ce n'est pas vraiment nécessaire.la source
Développant la grande réponse d'adamJLev ci - dessus , voici la version TypeScript:
la source
J'ai un plongeur qui l'ajoute au prototype de chaîne: string.format Il n'est pas seulement aussi court que certains des autres exemples, mais beaucoup plus flexible.
L'utilisation est similaire à la version c #:
En outre, prise en charge supplémentaire de l'utilisation des noms et des propriétés des objets
la source
Vous pouvez également fermer le tableau avec des remplacements comme celui-ci.
ou vous pouvez essayer
bind
la source