javascript - 为什么 JavaScript 的 string.split() 在某些情况下不能正常工作?
问题描述
我需要将一串文本拆分为其组成词,因此我使用正则表达式将其拆分为空格(在 Typescript 文件中,顺便说一句)。
splitIntoWords(text: string) : Array<string> {
const separator = ' ';
const words = text.split(new RegExp(separator, 'g'));
return words;
}
这主要是有效的,但我注意到我经常在数组中得到仍然包含空格的单词。如果我将文本复制到 Chrome 控制台并 split(' ') ,我会得到正确数量的单词,但是当我使用变量时(即使在控制台中),它在某些情况下总是会失败。我无法弄清楚有什么区别。这是我的文字的一个例子:
"Le coronavirus en France : la décrue se poursuit en réanimation, la reprise économique au cœur des préoccupations. La mise en œuvre du plan de déconfinement élaboré par le gouvernement doit encore faire l’objet, jeudi, d’un « travail de concertation et d’adaptation aux réalités de terrain » avec les responsables et les élus locaux."
例如,正则表达式从未设法将子字符串“économique au”分成两个部分。有谁知道为什么会这样?
解决方案
听起来空白有时不仅仅是一个普通的空间。您可以使用for 分隔符来拆分所有\s
空格,这将匹配任何空格,包括空格字符和制表符。
const text = "Le coronavirus en France : la décrue se poursuit en réanimation, la reprise économique au cœur des préoccupations. La mise en œuvre du plan de déconfinement élaboré par le gouvernement doit encore faire l’objet, jeudi, d’un « travail de concertation et d’adaptation aux réalités de terrain » avec les responsables et les élus locaux.";
const words = text.split(/\s/);
console.log(words);
另一种选择是使用匹配而不是拆分,并匹配非空白字符。
const text = "Le coronavirus en France : la décrue se poursuit en réanimation, la reprise économique au cœur des préoccupations. La mise en œuvre du plan de déconfinement élaboré par le gouvernement doit encore faire l’objet, jeudi, d’un « travail de concertation et d’adaptation aux réalités de terrain » avec les responsables et les élus locaux.";
const words = text.match(/\S+/g);
console.log(words);
推荐阅读
- java - 如何使用鼠标监听器和计时器计算点击次数
- r - R - 生存:survfit.object(cumhaz =基线或居中?)
- html - 允许在 IE 中调整窗口大小
- r - 用条件 LOCF 估算 NA
- java - Kafka 消息过滤
- c# - 如何设置 IHttpClientAdapter.GetAsync 以返回具有 IsSuccessStatusCode 特定值的 HttpResponseMessage?
- python - 如何设置我的 if 语句变量与我的函数相同
- python-3.x - Sklearn 内核密度数据类型
- java - 用单个空格替换所有 2 个或更多空格序列的 Java 字符串方法
- angular - 前段时间在 ionic V4 中使用 Angular 管道