2009-12-10 192 views
0

我有以下代碼:分割字符串的特定字符

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"] 

該函數沒有考慮空白。例如,如果輸入

ends_with('Jonas Sand,', ',') 

的輸出將是Sand。需要關於使用帶有空格的單詞進行功能工作的幫助。

+0

請把你的代碼放在代碼塊 - CTRL + K :) – 2009-12-10 14:16:43

回答

4

您可以在split使用分離器,並採取一切除非slice最後一部分:

function ends_with(string, character) { 
    return string.split(character).slice(0, -1); 
} 
2

\w匹配單詞字符,改爲使用[^x],其中x是您的角色。這匹配一切,但你的性格。

所以在你的函數的第一行成爲

var regexp = new RegExp('[^' + character + "]+" + character, 'g'); 
,另一方面

,如果你想匹配由空格分隔的話,使用

var regexp = new RegExp('(\\w|\\s)+" + character, 'g'); 

 

PS: 但在javascript中沒有String#split函數?

0

嘗試以下操作:

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

function ends_with(string, character) { 
    var regexp = new RegExp('.+' + character, 'g'); 
    var matches = string.match(regexp); 
    var replacer = new RegExp(character + '$'); 
    return matches.map(function(ee) { 
     return ee.replace(replacer, ''); 
    }); 
} 
1

嘗試使用的'[\\w\\s]+'代替'\\w+'包括空格。

+0

完美的作品!尼斯 – user228720 2009-12-10 14:40:47