2010-02-01 5 views
1

en JavaScript, j'utilise Regex à split(/\W+/) en mots.javascript Regex aide unicode

quand je partagerai cela, il est de retour mauvaise valeur

var s3 = "bardzo dziękuję"; 
s3 = s3.split(/\W+/); 


[0]: "bardzo" 
[1]: "dzi" 
[2]: "kuj" 

Comment résoudre ce problème? s'il vous plaît avis

Répondre

1

Le regex ne fractionne pas parce qu'il traite vos caractères accentués comme des caractères non-mot.

Utilisez le caractère spécial des espaces: -

s3 = s3.split(/\s+/); 
+0

merci, cela a fonctionné! – kakopappa

1

Dans ce cas, pourquoi ne pas simplement diviser avec des espaces?

s3.split(/\s+/);

1

Vous pouvez utiliser CharFunk https://raw.github.com/joelarson4/CharFunk, qui gère Unicode entièrement.

var s3 = "bardzo dziękuję"; 

function notLetterOrDigit(ch) { 
    return !CharFunk.isLetterOrDigit(ch); 
} 

CharFunk.splitOnMatches(s3, notLetterOrDigit);