Frank,worked,at,I B M,forever 另一种选择是“挤-6ren">
gpt4 book ai didi

javascript - 在空格上拆分短语,首字母缩略词除外

转载 作者:行者123 更新时间:2023-11-30 12:35:06 26 4
gpt4 key购买 nike

希望在空格上拆分短语,除非有可能的首字母缩略词。示例:

"Frank worked at I B M forever"-> Frank,worked,at,I B M,forever

另一种选择是“挤压”首字母缩略词 -> “Frank worked at IBM forever”

最佳答案

使用 split 的特性,它允许您通过将拆分元素放在一个捕获组中来保留拆分元素,并使除了空格之外的首字母缩略词拆分元素。

var separator = /\s+|\b([A-Z\s]*[A-Z])\b/;

这会在结果中添加一些未定义的内容,因此您需要将它们过滤掉。

function split(str) { return str.split(separator).filter(Boolean); }

split("Frank worked at I B M forever")
> ["Frank", "worked", "at", "I B M", "forever"]

删除首字母缩略词之间的空格:

function squish(str) { return str.replace(/\s/g, ''); }
function split(str) { return str.split(separator).filter(Boolean).map(squish); }

split("Frank worked at I B M forever")
> ["Frank", "worked", "at", "IBM", "forever"]

此正则表达式的人类可读版本:

Split on
white space
OR
Between words, capturing as a group
optional capital letters or whitespace
followed by a capital letter

有关 split 的此功能的更多信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split :

If separator is a regular expression that contains capturing parentheses, then each time separator is matched, the results (including any undefined results) of the capturing parentheses are spliced into the output array.

关于javascript - 在空格上拆分短语,首字母缩略词除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26310013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com