首页 > 解决方案 > JAVASCRIPT .split() 方法中的正则表达式问题

问题描述

我有一个由数字和数学运算符组成的字符串,例如"1 + 1 *1"屏幕div上数字追加的文本内容,我想将它们组成一个数组,然后使用+或-等数学运算符将其除以除数,问题是当我尝试划分它们时,数组实际上被划分了,除了“-”符号存在时,事实上,如果我有一个字符串"1 + 1 * 1 -1" ,结果将是一个数组["1", "1", "1-1"],而它应该是["1", "1", "1", "1"] 提前谢谢大家。

let regex = /[+ | - | * | / ]/
let Arrays
Arrays = screen.textContent.split(regex);

标签: javascriptregex

解决方案


您似乎将替代品与字符集混淆了。

将运算符放在字符集中,并在其周围留有可选空格。

您需要转义-,因为它用于分隔字符范围的结尾(除非您将其放在字符集的开头或结尾)。

let regex = /\s*[+\-*/]\s*/;
let text = '1 + 1 * 1 -1';
console.log(text.split(regex));


推荐阅读