- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Frank,worked,at,I B M,forever 另一种选择是“挤-6ren">
希望在空格上拆分短语,除非有可能的首字母缩略词。示例:
"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 timeseparator
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/
直接问题:对于一个类对象的三个(或更多)几乎相同的拷贝,我怎样才能最好(或最有效)地存储它们之间的差异? 背景:我有一个需要一组参数的算法: struct params { std::strin
我是一名优秀的程序员,十分优秀!