javascript - 正则表达式替换保留空格的单词

标签 javascript regex

我正在尝试在 JavaScript 中开发一个函数,该函数获取一个短语并处理每个单词,保留空格。它会是这样的:

properCase('  hi,everyone   just  testing') => '  Hi,Everyone   Just  Testing'

我尝试了几个正则表达式,但找不到只获取单词、应用函数并在不触及空格的情况下替换它们的方法。

我正在尝试

'  hi,everyone   just  testing'.match(/([^\w]*(\w*)[^\w]*)?/g, 'x')
["  hi,", "everyone   ", "just  ", "testing", ""]

但我不明白为什么这些空间被捕获。我只想捕获 (\w*) 组。还尝试过 /(?:[^\w]*(\w*)[^\w]*)?/g ,结果是一样的...

最佳答案

像这样的东西怎么样

'  hi,everyone   just  testing'.replace(/\b[a-z]/g, function(letter) {
    return letter.toUpperCase();
});

如果你想处理每个单词,你可以使用

'  hi,everyone   just  testing'.replace(/\w+/g, function(word) {
    // do something with each word like
    return word.toUpperCase();
});

关于javascript - 正则表达式替换保留空格的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519699/

相关文章:

javascript - 如何在不使用 $watch 的情况下在多个 Controller 上保持服务数据相同?

javascript - 右键单击时出现两次警报

c# - 如何提取文本字符串中的短语和单词?

Java split() 正则表达式

java - 正则表达式匹配长度大于n的字母和数字字符串?

regex - 通过 sed 取消注释结束赞誉

javascript - 使用 push(data) Angularfire2 时处理错误

javascript - 使用AJAX解析XML : Image Link : undefined?

javascript - 正则表达式接受 4 个不同模式的字符

javascript - 如何在两个数字之间添加一个点?