如何使用javascript在另一个特定字符之前插入字符

时间:2017-10-25 14:52:10

标签: javascript string

我需要知道如何在打开括号之前插入一个星号。

我正在使用javascript eval进行乘法,例如eval("2(3)"),但我收到错误"unexpected input value"

要解决这个问题,我需要以下内容:

var str = "2(3)";

要改为:

output = "2*(3)";

5 个答案:

答案 0 :(得分:2)

您可以使用String.prototype.replace()

示例:



var str = '2(3)'
var output = str.replace(/\(/g, '*(')
console.log(output)




这将输出:2*(3)

答案 1 :(得分:2)

如果要执行更复杂/嵌套的乘法,则需要将此更复杂的正则表达式(\)|\d+(?!\d)\.?)(?=[(\d.+-])replace()函数一起使用。它适用于嵌套括号的任意组合,以及以小数点开头或结尾的加号,负数和数字:

var str, output;
str = '2(3)';
output = str.replace(/(\)|\d+(?!\d)\.?)(?=[(\d.+-])/g, '$1*');
console.log(output);
str = '2(3)(-4)';
output = str.replace(/(\)|\d+(?!\d)\.?)(?=[(\d.+-])/g, '$1*');
console.log(output);
str = '((.22(33))((-44)-55.(66)+77))';
output = str.replace(/(\)|\d+(?!\d)\.?)(?=[(\d.+-])/g, '$1*');
console.log(output);

答案 2 :(得分:1)

您可以使用replace()功能结合一点正则表达式([0-9])\(([0-9])



var str = "2(3)";
var output = str.replace(/([0-9])\(([0-9])/g,'$1*($2');
console.log(output);




答案 3 :(得分:0)

您可以对字符串进行切片并添加如下星号:

JComboBox

答案 4 :(得分:0)

试试这个:



var str = "2(3)";
var a = str.split('');
a.splice(1,0,"*");
a = a.join(''); 
console.log(a);




对我有用:)