2009-12-10 68 views
0

我想分割一个字符串,看起来像这样:word1; word2; word3,word4,word5,word6.word7。等等。如何拆分包含不同符号的字符串?

该字符串是从我从一个从网页收集数据从数据库中获得的输出,所以字符串可能看起来不同,但第一个字总是分开;然后,以及最后一个单词。(点)

我希望能够获取以例如结尾的所有单词; , 要么 。成阵列。有人知道如何做到这一点?

我还想知道如何只提取结尾的单词;

函数ends_with(字符串,字符)下面的作品,但它不考虑空白。例如,如果这个词是乔纳斯沙,它只会打印沙子。任何人都知道如何解决这个问题?

回答

7

大概

var string = "word1;word2;word3,word4,word5,word6.word7"; 
var array = string.split(/[;,.]/); 
// array = ["word1", "word2", "word3", "word4", "word5", "word6", "word7"] 

的关键是在传递到String#split方法的正则表达式。字符类运算符[]允许正则表达式在包含它的字符之间进行选择。

如果您需要拆分包含多个字符的字符串,则可以使用|进行区分。

var array = string.split(/;|,|./) // same as above 

编辑:没有仔细阅读问题。事情是这样的

var string = "word1;word2;word3,word4,word5,word6.word7"; 

function ends_with(string, character) { 
    var regexp = new RegExp('\\w+' + character, 'g'); 
    var matches = string.match(regexp); 
    var replacer = new RegExp(character + '$'); 
    return matches.map(function(ee) { 
    return ee.replace(replacer, ''); 
    }); 
} 
// ends_with(string, ';') => ["word1", "word2"] 
+0

但如果我只是想与结束的话; – user228720 2009-12-10 11:34:45

+0

不错!这工作完美...谢谢! – user228720 2009-12-10 11:56:50

+0

仍然有问题,当检验词3有空格像 ;詹姆斯,乔纳斯沙,代码只打印出霍华德,沙 – user228720 2009-12-10 12:26:51

0
var myString = word1;word2;word3,word4,word5,word6.word7; 
var result = myString.split(/;|,|./); 
相关问题