Estou tentando mover algum código JavaScript do MicrosoftAjax para o JQuery. Eu uso os equivalentes JavaScript no MicrosoftAjax dos métodos .net populares, por exemplo, String.format (), String.startsWith (), etc. Existem equivalentes a eles no jQuery?
javascript
jquery
string.format
Waleed Eissa
fonte
fonte
Respostas:
O código-fonte do ASP.NET AJAX está disponível para sua referência, para que você possa selecioná-lo e incluir as partes que deseja continuar usando em um arquivo JS separado. Ou, você pode portá-los para jQuery.
Aqui está a função de formato ...
E aqui estão as funções protótipo endsWith e beginWith ...
fonte
{0}{1}
,{0}
será substituído primeiro e, em seguida, todas as ocorrências{1}
no texto já substituído e no formato original serão substituídas.Essa é uma variação mais rápida / mais simples (e prototípica) da função que Josh postou:
Uso:
Eu uso tanto isso que eu o aliastei apenas
f
, mas você também pode usar os mais detalhadosformat
. por exemplo'Hello {0}!'.format(name)
fonte
Muitas das funções acima (exceto as de Julian Jelfs) contêm o seguinte erro:
Ou, para as variantes que contam de trás para frente no final da lista de argumentos:
Aqui está uma função correta. É uma variante prototípica do código de Julian Jelfs, que eu fiz um pouco mais:
E aqui está uma versão um pouco mais avançada do mesmo, que permite escapar dos aparelhos dobrando-os:
Isso funciona corretamente:
Aqui está outra boa implementação de Blair Mitchelmore, com vários recursos extras agradáveis: https://web.archive.org/web/20120315214858/http://blairmitchelmore.com/javascript/string.format
fonte
Criou uma função de formato que usa uma coleção ou uma matriz como argumentos
Uso:
Código:
fonte
String.prototype
?Existe uma opção (um tanto) oficial: jQuery.validator.format .
Vem com o jQuery Validation Plugin 1.6 (pelo menos).
Muito semelhante ao
String.Format
encontrado no .NET.Editar Link quebrado quebrado.
fonte
Se você estiver usando o plug-in de validação, poderá usar:
jQuery.validator.format("{0} {1}", "cool", "formatting") = 'cool formatting'
http://docs.jquery.com/Plugins/Validation/jQuery.validator.format#templateargumentargumentN ...
fonte
Embora não seja exatamente o que o Q estava pedindo, criei um que é semelhante, mas usa espaços reservados nomeados em vez de numerados. Pessoalmente, prefiro ter argumentos nomeados e apenas enviar um objeto como argumento (mais detalhado, mas mais fácil de manter).
Aqui está um exemplo de uso ...
fonte
Usando um navegador moderno, que suporta o EcmaScript 2015 (ES6), você pode aproveitar as Strings de modelo . Em vez de formatar, você pode injetar diretamente o valor da variável nele:
Observe que a string do modelo deve ser escrita usando back-ticks (`).
fonte
Nenhuma das respostas apresentadas até o momento não possui otimização óbvia do uso do gabinete para inicializar uma vez e armazenar expressões regulares, para usos subsequentes.
Além disso, nenhum dos exemplos respeita a implementação format () se já existir.
fonte
Aqui está o meu:
Não é à prova de balas, mas funciona se você usá-lo com sensibilidade.
fonte
Passado o final da temporada, mas eu apenas estive olhando as respostas dadas e tenho meu valor tuppence:
Uso:
Método:
Resultado:
fonte
Agora você pode usar Literais de Modelo :
fonte
Aqui está minha versão capaz de escapar do '{' e limpar os marcadores de posição não atribuídos.
fonte
A resposta a seguir é provavelmente a mais eficiente, mas tem a ressalva de ser adequada apenas para mapeamentos de argumentos 1 a 1. Isso usa a maneira mais rápida de concatenar cadeias (semelhante a um construtor de cadeias: matriz de cadeias, unida). Este é o meu próprio código. Provavelmente precisa de um separador melhor.
Use-o como:
fonte
Isso viola o princípio DRY, mas é uma solução concisa:
fonte
fonte
Não consegui que a resposta de Josh Stodola funcionasse, mas o seguinte funcionou para mim. Observe a especificação de
prototype
. (Testado no IE, FF, Chrome e Safari.):s
realmente deve ser um clone dethis
modo a não ser um método destrutivo, mas não é realmente necessário.fonte
Expandindo a excelente resposta de adamJLev acima , aqui está a versão TypeScript:
fonte
Eu tenho um plunker que o adiciona ao protótipo de string: string.format Não é tão curto quanto alguns dos outros exemplos, mas muito mais flexível.
O uso é semelhante à versão c #:
Além disso, foi adicionado suporte ao uso de nomes e propriedades de objetos
fonte
Você também pode fechar a matriz com substituições como esta.
ou você pode tentar
bind
fonte