如何在数组中存储元素,但是通过固定前导零

时间:2017-03-23 13:17:00

标签: javascript arrays logic

function getResult(exp)
{
		var result, num = [], signs = [];
    //console.log("here" + exp.lastIndexOf(""));
		parts = exp.split(/([+-/*])/);
		for (var i = 0; i < parts.length; i++)
		{
			var item = parts[i].trim()
			if (isNaN(item))
			signs.push(item);

			else
			num.push(item);

		}
		console.log(num);
}

function maincalculation()
{
			var txtprint = document.getElementById("texa");
			if(!document.getElementById("texa").value)
			{
			}
			else
			{
				 var result = getResult(txtprint.value);
				 txtprint.value = result;
			}
}
<html>
<body>
	<div class = "textbox">
		  <!--	<input type="text" value="" id="tex" />
			<input type="button" value="equal" onclick="equal()" id="add" />
			<input type="button" value="click-count" onclick="click()" id="click" />
			<p><input type="button" name="button" value="Saying Hello" id="hello" onclick="hello();"/></p> -->
			<br><br>
			<input types="text" id="texa">
			<input type = "button" value = "calculate" onclick="maincalculation()" />
	</div>
</body>
</html>

我的代码包含文本框,它由用户获取整个String类型现在我想将数组元素分别存储在数组中。它完全存储,但我想存储数组元素,如截断前导零,我使用正则表达式函数num = num.replace(/ ^ [0] + / g,“”);它消除了我想要的所有前导零,但是当用户只输入0时它也将消除0值并存储空白所以有任何方式如果用户类型假设如[10 + 30 + 001 + 08 * 0/89]那么这个值必须像这样存储[10 + 30 + 1 + 8 * 0/89],截断所有前导零而不是单个零值。

1 个答案:

答案 0 :(得分:0)

我的评论示例:

&#13;
&#13;
var regex = new RegExp('0*(?=[0-9])+', 'g');

console.log('0'.replace(regex, ''));     //0
console.log('0000'.replace(regex, ''));  //0
console.log('01'.replace(regex, ''));    //1
console.log('00106'.replace(regex, '')); //106
console.log('4'.replace(regex, ''));     //4
console.log('10+30+001+08*0/89'.replace(regex, ''));

function getResult(exp) {
    var result, num = [], signs = [];
    parts = exp.split(/([+-/*])/);
    for (var i = 0; i < parts.length; i++) {
        var item = parts[i].trim()
        if (isNaN(item))
            signs.push(item);
        else
            num.push(+item.replace(regex,''));
    }
    console.log(num);
}

function clickMe() {
    getResult($('#calculation').val());
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="calculation" value="10+30+001+08*0/89"/> 
<button onclick="clickMe()">Get result</button>
&#13;
&#13;
&#13;