JavaScript 字符串中小写和大写字母之间的空格

发布于 2024-10-14 18:41:03 字数 172 浏览 8 评论 0原文

我想在一个字符串中的小写和大写之间添加一个空格。例如:

FruityLoops
FirstRepeat

现在我想在小写字母和大写字母之间添加一个空格。我不知道应该如何开始使用 JavaScript。有 substr 或 search 的东西吗?有人可以帮助我吗?

I want to add a space between a lowercase and uppercase in one string. For example:

FruityLoops
FirstRepeat

Now I want to add a space between the lowercase and uppercase letters. I don't know how I should start in JavaScript. Something with substr or search? Can somebody can help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

请止步禁区 2024-10-21 18:41:03
var str = "FruityLoops";

str = str.replace(/([a-z])([A-Z])/g, '$1 $2');

示例: http://jsfiddle.net/3LYA8/

var str = "FruityLoops";

str = str.replace(/([a-z])([A-Z])/g, '$1 $2');

Example: http://jsfiddle.net/3LYA8/

烏雲後面有陽光 2024-10-21 18:41:03

像这样简单的事情:

"LoL".replace(/([a-z])([A-Z])/g, "$1 $2")

也许就足够了;)

something simple like that :

"LoL".replace(/([a-z])([A-Z])/g, "$1 $2")

is maybe sufficient ;)

☆獨立☆ 2024-10-21 18:41:03

您可以通过手动搜索来完成此操作,但使用正则表达式可能会更容易。假设:

  • 您知道它以大写字母开头
  • 您不希望在该大写字母前面有一个空格
  • 您希望在所有后续大写字母前面有一个空格

然后:

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/[A-Z]/g, function(ch) {
        return " " + ch;
    });
}

alert(spacey("FruitLoops")); // "Fruit Loops"

实例

更高效的版本,灵感来自(但不同)来自)帕特里克的回答:

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/([a-z])?([A-Z])/g, "$1 $2");
}

alert(spacey("FruityLoops"));  // "Fruity Loops"
alert(spacey("FruityXLoops")); // "Fruity X Loops"

实例

You can do it with a manual search, but it may be easier with a regex. Assuming:

  • You know it starts with a capital
  • You don't want a space in front of that capital
  • You want a space in front of all subsequent capitals

Then:

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/[A-Z]/g, function(ch) {
        return " " + ch;
    });
}

alert(spacey("FruitLoops")); // "Fruit Loops"

Live example

More efficient version inspired by (but different from) patrick's answer:

function spacey(str) {  
    return str.substring(0, 1) +
           str.substring(1).replace(/([a-z])?([A-Z])/g, "$1 $2");
}

alert(spacey("FruityLoops"));  // "Fruity Loops"
alert(spacey("FruityXLoops")); // "Fruity X Loops"

Live example

素罗衫 2024-10-21 18:41:03

正则表达式选项看起来最好。不过,正确使用正则表达式似乎很棘手。

这里还有另一个问题,需要尝试一些更复杂的选项:

正则表达式,按大写字母分割字符串但忽略 TLA

The regexp option looks the best. Getting the regexp right appears to be tricky though.

There's another question here with some more complex options to try:

Regular expression, split string by capital letter but ignore TLA

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文