第十四篇 JS實現加減乘除 正則表達式


JS實現加減乘除

這節課,將會繼續使用到if判斷,會讓同學們再看到一個新的,else if判斷語句,意思是:否則如果,是基於if下的判斷語句,就是說,if不成立則再來判斷else if,可以這樣,假如a=1,if(a=2){我是2}else if(a=1){我是1}else{我是3},就是這樣的關聯,但有的同學問,直接用if一直判斷就好了,不需要用else if,是這樣的,程序運行,else if是基於if的對吧,那么它就是一條語句,如果相同的判斷語句多了,全用if,程序就會一個一個去執行,量就會加大,就會影響程序速度。
這節課其實最難的是,“正則表達式”,它特別厲害哦,它可以很簡單的來做,手機、IP、驗證碼、密碼、用戶名、地址等操作,可以節省更多的代碼和思維,它的特點就是,開頭和結尾都是用一根 / 斜杠的,里面則是正則內容,用做判斷特別給力。
 
上代碼,老師做一個初學者能看到的加減乘除法:
 
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>JS實現一個加減乘除</title>
</head>
<body>
<h3>加減乘除法</h3>
<input placeholder="第一個數字" id="num1" type="text"/>
<select name="fuhao" id="fuhao">
    <option value="+">+</option>
    <option value="-">-</option>
    <option value="*">*</option>
    <option value="/">/</option>
</select>
<input placeholder="第二個數字" id="num2" type="text"/>
<button onclick="yunsuan()">運算</button>
<input placeholder="得出結果" id="num3" type="text"/>

<script>
function yunsuan(){
    //點擊事件運行后,獲取相關的所有元素id
    var num1 = document.getElementById("num1");
    var num2 = document.getElementById("num2");
    var num3 = document.getElementById("num3");
    var fuhao = document.getElementById("fuhao");
    // 下面這個是正則表達式,下面這個意思則是,只能輸入數字,字數必須有一個及以上
    var zhengze = /^[0-9]{1,}$/;
    //這里面則是用判斷,使用正則的格式,來判斷 num1 和num2格式是否正確
    if(!zhengze.test(num1.value)){
        //老師判斷力用了一個 !(嘆號),意思是取相反,它本身成立則會變成不成立
        alert('只能輸入整數,數字喲');
        //判斷如果不成立,彈出提示並讓代碼停止運行,就不往下面走了
        return false;
    }else if(!zhengze.test(num2.value)){
        //else if意思是 否則如果,是在if下面使用的一個判斷語句
        alert('只能輸入整數,數字喲');
        return false;
    }
    //先用判斷,判斷它的運算符號
    //value 是獲取它的文本框里的值 select是下拉列表,也可以當做是文本框哦
    if(fuhao.value == '+'){
        //一個等號是賦值,兩個等號才是平常我們作比較說的“等於”
        //在JS里,+號不是兩個數字相加,而是‘拼接’,將兩個數字或者字符串拼接在一起
        //這里我們做數字運算,就要用到parseInt方法,就它轉化成數字才能相加得出結果
        num3.value = parseInt(num1.value)+parseInt(num2.value);
    }else if(fuhao.value == '-'){
        num3.value = parseInt(num1.value)-parseInt(num2.value);
    }else if(fuhao.value == '*'){
        num3.value = parseInt(num1.value)*parseInt(num2.value);
    }else if(fuhao.value == '/'){
        num3.value = parseInt(num1.value)/parseInt(num2.value);
    }
}
</body>
</html>

 

這里面的代碼還可以再節省一點,但老師先做出這樣,讓入門的同學更加看得懂。那么怎么節省呢,有興趣的同學自己去想一下咯!
這里老師只用了支持整數,還有小數呢...
這里老師每一個運算符一行代碼,就是4行,再加上判斷if就又是幾行,數學運算符不止這四個,那么我們就再一直無線延伸下去寫代碼嗎?那就太費事了,有辦法能做到,直接獲取運算符,然后得出結果,老師不吹牛,一行代碼直接搞定,那么有興趣的同學,自己去開發咯!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM