Javascript 使用正则表达式拆分字符串,然后加入它

标签 javascript regex split

嘿,我想要一个可以拆分字符串的函数,例如 "(12/x+3)*heyo" 我可以单独编辑每个数字、字母和单词,然后返回编辑后的内容版本。到目前为止,我得到了这个(它没有按预期工作):

function calculate(input){
    var vars = input.split(/[+-/*()]/);
    var operations = input.split(/[^+-/*()]/);
    var output = "";

    vars = vars.map(x=>{
        return x+"1";
    });

    for(var i=0; i<operations.length; i++){
        output += operations[i]+""+((vars[i])?vars[i]:"");
    }
    return output;
}

例如:(12/x+3)*heyo 返回:(1121/x1+31)*1heyo1 但应该返回 (121/x1 +31)*heyo1

最佳答案

您可以使用regexreplace 方法来完成此任务:

var s = "(12/x+3)*heyo";

console.log(
  s.replace(/([a-zA-Z0-9]+)/g, "$1" + 1)
)

根据您要匹配的字符,您可能需要 /([^-+/*()]+)/g 作为模式:

var s = "(12/x+3)*heyo";

console.log(
  s.replace(/([^-+/*()]+)/g, "$1" + 1)
)

关于Javascript 使用正则表达式拆分字符串,然后加入它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559629/

相关文章:

regex - Perl:正则表达式模式内的条件代码执行

php - Becs 字符集正则表达式

javascript - 属性访问是如何工作的,下面这行有什么作用?

php - 将字符串分解为二维数组

javascript - 是否有可在浏览器中使用的免费 Ajax 实现的 HTML 编辑器?

javascript - Three.js raycaster 到底在做什么?

c# - 发送 ajax POST 请求接收 GET 请求

javascript - AngularJS - 如何传递最新的 $routeParams 来解析?

c# - EAN128 或 GS​​1-128 解码 c#

java - Java中以不同长度分割字符串