javascript - 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);
解决方案
您似乎将替代品与字符集混淆了。
将运算符放在字符集中,并在其周围留有可选空格。
您需要转义-
,因为它用于分隔字符范围的结尾(除非您将其放在字符集的开头或结尾)。
let regex = /\s*[+\-*/]\s*/;
let text = '1 + 1 * 1 -1';
console.log(text.split(regex));
推荐阅读
- c# - .net core 使用 prometheus 监控 nats 请求
- python - PySimpleGui:如何删除列表框中的事件延迟?
- python - Python - 获取特定键的所有值
- javascript - 尝试根据 react.js/javascript 中的答案值计算总分
- laravel - 如何使用自定义验证消息 Laravel?
- java - 无法在目录中创建文件 - Java
- django - DJANGO - Models.Forms - Usuarios
- javascript - 打字稿:没有 npm 的导入库 - 导入外部
- node.js - 如何在没有 create-nuxt-app 的情况下创建 nuxt.js 应用程序
- javascript - Html页面播放视频流