TypeError: Résultat de l'expression d'entrée.remplacer " [non défini] n'est pas une fonction
J'ai écrit cette fonction en javascript:
function maskString(input) {
return input.replace(/\s\s+/," ");
}
Très simple.
Dans une deuxième fonction, j'ai écrit:
function secondFunction(string1, string2) { //Attetion! See Update 2!
var string1masked = maskString(string1);
var string2masked = maskString(string2);
( ... )
}
Le message d'erreur est:
TypeError: Result of expression 'input.replace' [undefined] is not a function.
Quelqu'un à une idée? Google n'était pas vraiment utile :\
Mise à JOUR 1:
Je suis à l'aide de jQuery et string1 est à partir d'une zone de texte. Je suis l'appel de la deuxième fonction comme ceci:
var bool = secondFunction (textarea1.val(), textarea2.val()); //Attetion! See Update 2!
Mise à JOUR 2:
Je me suis trompé avec la seconde fonction ... C'est:
function secondFunction(string1, array1) {
var string1masked = maskString(string1);
var array1masked = maskString(array1);
( ... )
}
Donc ma fonction ne fonctionne pas avec la matrice. Malheureusement, je n'ai aucune idée de comment le modifier 🙁
- Qu'est-ce que
array1
exactement? Un tableau de ce à quoi? Les chaînes? - Je pense que oui. Mais pour être honnête, je ne suis pas sûr à 100% car elle est générée par un XML-Parser ... Est-il un moyen de le vérifier? Comme var_dump en PHP?
- Certaines fonctions de PHP ont été mis en œuvre en Javascript,
var_dump
est l'un d'entre eux.
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous avez un code comme ceci:
textarea1.val()
retourneundefined
si l'élément n'est pas trouvé (c'est à dire un élément avec l'IDtextarea1
). Vérifiez si vous n'avez pas fait une faute de frappe dans le sélecteur d'élément et si la fonction est appelée après que l'élément est disponible.Cette fonction fonctionne pour les chaînes et les tableaux contenant des chaînes de caractères. Si un argument ou un tableau de la valeur n'est pas une chaîne, ni un tableau, il ne touche pas la valeur.
Si votre intention est de transformer plusieurs espaces d'un seul (comme dans
string with multiple spaces in it
->string with multiple spaces in it
), vous pouvez également utiliser la procédure simplifiée de RE:Un seul caractère espace seront remplacés par un seul espace. Plusieurs espaces seront également remplacés par un seul espace. Notez que j'ai ajouté le
g
drapeau si le remplacement se produit plusieurs fois.Je suppose
input
est votre zone de texte de saisie ou de quelque chose?Dans ce cas, l'entrée n'a pas un
replace()
de la fonction définie pour elle. Vous voulez vous assurer que vous êtes d'appelreplace()
sur la chaîne de la valeur à l'intérieur de l'entrée, pas de l'entrée elle-même. Essayez ceci:TypeError: Result of expression 'input.value' [undefined] is not a function.
. l'entrée n'est pas vraiment un textfield (voir la mise à Jour 1).