I have the following code:
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"]
The function takes no regard to whitespace. For example if you input
ends_with('Jonas Sand,', ',')
the output will be Sand. Need help on making the function work with words that has whitespace.
\\w
matches word characters, use [^x]
instead, where x
is your character. This matches everything but your character.
So the first line in your function becomes
var regexp = new RegExp('[^' + character + "]+" + character, 'g');
on the other hand, if you want to match words separated by white space, use
var regexp = new RegExp('(\\w|\\s)+" + character, 'g');
PS: but isn't there a String#split
function in javascript?
尝试使用'[\\\\w\\\\s]+'
而不是'\\\\w+'
来包含空格。
Try the following:
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, '');
});
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.