jquery remplacer la pas de remplacer tous les espaces avec -
Pourquoi mon jquery ne pas remplacer tous les espaces par un '-'
. Il ne remplace la première place avec un '-'
$('.modhForm').submit(function(event) {
var $this = $(this),
action = $this.attr('action'),
query = $this.find('.topsearchbar').val(); //Use val() instead of attr('value').
if (action.length >= 2 && query.length >= 2 && query.lenght <=24) {
//Use URI encoding
var newAction = (action + '/' + query.replace(' ','-'));
console.log('OK', newAction); //DEBUG
//Change action attribute
$this.attr('action', newAction);
} else {
console.log('To small to be any good'); //DEBUG
//Do not submit the form
event.preventDefault();
}
});
- Chaîne de caractères.remplacez -- voir le deuxième exemple sur cette page.
Vous devez vous connecter pour publier un commentaire.
Essayer avec ceci:
Démo: JSFiddle
jsfiddle
de sorte qu'il n'est pas faux..il peut y avoir certains compatibilité du navigateur issue..@NormanEssayez ceci:
C'est: "si (l'action.longueur >= 2 && query.longueur >= 2 && requête.longueur <=24) {"
Pas: "si (l'action.longueur >= 2 && query.longueur >= 2 && requête.longueur <=24) {"
Utiliser un expression régulière pour remplacer toutes les occurences :
Vous pouvez essayer avec la fonction personnalisée
Essayer cette
Cela fonctionne encore, dans le cas où votre requête est
undefinied
ouNaN
Remplacer tous les espaces blancs (y compris les tabulations, espaces, ...):
String.prototype.replace
remplace seulement le premier lors de son premier argument est une chaîne de caractères. Pour remplacer toutes les occurrences vous avez besoin de passer dans une expression régulière comme premier argument.D'autres ont montré un certain nombre d'expressions régulières de travail pour les différentes définitions de "l'espace".