Découper une chaîne en utilisant les espaces en Javascript?
J'ai besoin d'un générateur de jetons que, étant donné une chaîne de caractères arbitraire d'espace blanc entre les mots va créer un tableau de mots sans vide sous-chaînes.
Par exemple, étant donné une chaîne de caractères:
" I dont know what you mean by glory Alice said."
J'utilise:
str2.split(" ")
Cela revient aussi vide de sous-chaînes:
["", "I", "dont", "know", "what", "you", "mean", "by", "glory", "", "Alice", "said."]
Comment filtrer les cordes à vide à partir d'un tableau?
OriginalL'auteur dokondr | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Vous n'avez probablement même pas besoin de filtre, il suffit de diviser à l'aide de cette Expression Régulière:
\b
en regex?Correspond à une limite de mot, comme un espace, un caractère de, caractère de ponctuation ou de fin de chaîne (developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions). Pourrait ne pas être le parfait Regex mais, pour cet exemple, il fonctionne.
ouais, je sais. Mais c'est juste une curiosité.
J'aime les regex, mais comment tenir compte de ", " (virgule, espace)
OriginalL'auteur Daff
renvoie une liste de non-espace des séquences
["I", "dont", "know", "what", "you", "mean", "by", "glory", "Alice", "said."]
(notez que ceci inclut le point ".")renvoie une liste de tous les mots:
["I", "dont", "know", "what", "you", "mean", "by", "glory", "Alice", "said"]
docs sur match()
/S+/
des matchs contre des groupes de caractères pas les espaces, tandis que/w+/
les matches de groupes de caractères de alphanumérique+trait de soulignement. C'est pourquoi la période (.
) les correspondances de caractères dans une mais pas l'autre.OriginalL'auteur georg
Vous devriez couper la chaîne à l'avant à l'aide de split.
OriginalL'auteur Galway
Je recommande
.match
:Cela correspond aux mots, entre les limites des mots, de sorte que tous les espaces ne sont pas adaptés et ne sont donc pas inclus dans le tableau résultant.
Que comptez-vous en tant que caractères de mot? Si c'est tout sauf des espaces, vous pouvez simplement utiliser
[^ ]
au lieu de\w
.OriginalL'auteur pimvdb
voir le
filter
méthodehttp://www.hunlock.com/blogs/Mastering_Javascript_Arrays#quickIDX13
OriginalL'auteur ewok