2010-09-22 9 views
0

Existe-t-il un moyen d'utiliser un caractère générique dans un bookmarklet javascript?Wild Card dans JavaScript Bookmarklet

Par exemple, j'ai ceci:

javascript:(function(){var b=document.getElementsByName('send');for(var j=0;j<b.length;j++){if(b[j].value.match(/^Send Pattarapim a Thank you gift$/i)){b[j].click();break;}}})() 

Cela fonctionnait très bien quand l'article était pour "Pattarapim". Mais ce "nom" va changer à chaque fois. Est-ce que je pourrais faire n'importe quoi pour que ce JS fonctionne indépendamment de ce qui était à la place de Pattarapim?

Merci!

Répondre

0

Vous pouvez modifier l'expression régulière de

/^Send Pattarapim a Thank you gift$/i 

à

/^Send .* a Thank you gift$/i 

Le . signifie « correspond à tout caractère ici », et le * suivant, cela signifie « correspond à zéro ou plus de la chose précédente ". Donc combinés, ils signifient, "correspondre à zéro ou plus de n'importe quel personnage ici." (Ou vous pouvez utiliser + au lieu de *; + signifie "correspondre à un ou plusieurs".) Notez que cela peut être trop large, cela dépend du texte que vous allez traiter, mais puisque vous commencez avec un ^, a tendance à l'ancrer un peu et ça ira probablement bien.

+0

Je voudrais juste faire que paresseux au lieu de gourmand, pas que ce soit susceptible de faire une différence dans ce cas. – NullUserException

+0

@NullUserException: Oui, peut-être, bien qu'il ancre le début et la fin, disons simplement que ce serait un nom très étrange. :-) @Michael: Pour le rendre paresseux, il suffit de mettre un '?' Après le '*' ou le '+'. –

+0

Fonctionne parfaitement. Je vous remercie! – Seatbelt99