首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >矩阵方程的JS正则表达式

矩阵方程的JS正则表达式
EN

Stack Overflow用户
提问于 2021-11-09 20:55:17
回答 2查看 61关注 0票数 0

我正在编写一个矩阵计算器,用户在其中输入一些矩阵,然后编写一个包含所需矩阵的方程。为了验证这个方程,我想要一个正则表达式,如果一个字符不是从字组a,0-9,返回'true‘。,+,-,*,^,(,)。我已经创建了一个字符串数组来测试这个正则表达式,除了最后一个字符串之外,它可以工作。奇怪的是,我已经在regex101上测试了这个,并且在那个网站上,regex按计划工作。如何修改regex以使最后一个字符串返回“true”以及返回“true”的其他字符串?

代码语言:javascript
代码运行次数:0
运行
复制
let invalidCharRGX = /[^a-z0-9\.\+\-\*\^\(\)]/gi;
let strArr = [
  "A+B-C", //1 should return false
  "(A+B)-C", //2 should return false
  "A^+B^-C", //3 should return false
  "A*B-C", //4 should return false
  "2.5A+C", // 5 should return false
  "A=B", //6 should return true
  "[A-B]", //7 should return true
  "A&B", //8 should return true
  "A\B" //9 should return true
];
strArr.forEach((word, index) => {
    console.log(invalidCharRGX.test(word), 
                word.match(invalidCharRGX), 
                index + 1
               );
})

EN

回答 2

Stack Overflow用户

发布于 2021-11-09 21:20:12

当JS插入字符串时,"A\B"将被剥夺它的转义。

由于没有转义-b的特殊字符,转义将被删除。

在最初的语言分析中。

代码语言:javascript
代码运行次数:0
运行
复制
let invalidCharRGX = /[^a-z0-9\.\+\-\*\^\(\)]/gi;
let strArr = [
  "A+B-C", //1 should return false
  "(A+B)-C", //2 should return false
  "A^+B^-C", //3 should return false
  "A*B-C", //4 should return false
  "2.5A+C", // 5 should return false
  "A=B", //6 should return true
  "[A-B]", //7 should return true
  "A&B", //8 should return true
  "A\\B", //9 should return true
  "A\B" //10 should return false
];
strArr.forEach((word, index) => {
    console.log(word,
                invalidCharRGX.test(word), 
                word.match(invalidCharRGX), 
                index + 1
               );
})

票数 1
EN

Stack Overflow用户

发布于 2021-11-09 21:13:38

这不是正则表达式问题,这是您在最后一个条目中定义字符串的方式,即"A\B",您需要用另一个斜杠(即“A\B”)转义,否则它就被忽略了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69904962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档