J'essaie d'obtenir des mots comme "premier" "deuxième" "troisième" à partir d'une zone de saisie et de convertir les mots en pouces. Donc "premier" = 1, "second" = 2, etc. Y a-t-il un moyen de le faire avec Jquery? C'est ce que j'ai essayé jusqu'à présent.

 var functionGet = function(strSelector) {
        var input = $(strSelector).val();
        input = parseInt(input);
        return input;
      };

Mais cela ne fonctionne clairement pas parce que "premier" n'est pas identique à "un"

1
Programmer1010 18 avril 2018 à 00:04

3 réponses

Meilleure réponse

Le plus simple serait avec une légende

var numbers = {
  first: 1,
  second: 2,
  third: 3
}

var inputVal = $('input').val()
var intNum = numbers[inputVal]
0
James Harrington 17 avril 2018 à 21:11

Il n'y a aucun moyen de le faire automatiquement.

Au lieu de cela, vous devrez créer une sorte de dictionnaire de mappage contenant le (s) mot (s) pour chaque numéro et le numéro vers lequel ils se convertissent.

Quelque chose comme ça:

const dict = [
  ['zero'],
  ['one', 'first'],
  ['two', 'second']
  // etc
];

function convertWordToNumber(word) {
  for (let i in dict) {
    if (dict[i].includes(word)) {
      return i;
    }
  }
  
  return 'unknown';
}

['zero', 'second', 'one']
  .forEach(w => console.log(convertWordToNumber(w)));

Dans ce cas, le nombre est l'index du tableau, vous devez donc inclure zero (bien que si vous ne voulez rien y faire correspondre, vous pouvez inclure un [] vide à la place).

Ensuite, pour la conversion, il parcourt chacun d'eux, vérifiant tous les mots. S'il trouve une correspondance, il retournera cet index qui est la forme numérique de ce mot.

0
samanime 17 avril 2018 à 21:14

Une façon est d'écrire un tableau comme ["premier", "deuxième", "troisième" ...] et vous pouvez trouver l'index et imprimer l'index correspondant + 1 si l'index est> -1

0
hashbytes 17 avril 2018 à 21:08