> For the complete documentation index, see [llms.txt](https://johch3n611u.gitbook.io/c50108/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://johch3n611u.gitbook.io/c50108/ju-li-cheng-bei/201902/20190219-qian-duan-js.md).

# 2019/0219/Javascript終極密碼\&musicplay\&asp.net驗證器

## js

### 應用1 終極密碼

現在JS多寫於\</body>前

```
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

    <script>
        //終極密碼
        var pass = Math.floor((Math.random() * 99) + 1);   //隨機產生1~99
        //document.write(pass);

        var intMax = 100, intMin = 0;

        while (true) {
            pwd = prompt("終極密碼" + intMin + "-" + intMax + ":", "");
            //alert(pwd);

            if (pwd == null) {
                alert("您取消遊戲!!");
                break;
            }

            if (pwd-0 >= intMax || pwd-0 <= intMin || isNaN(pwd) || pwd.indexOf(".")!=-1) {
                alert("請輸入範圍內的值!!");
                continue;
            }


            if (pass == pwd) {
                alert("猜對了");
                break;
            }
            else if (pass > pwd) {
                //alert("猜錯了");
                intMin = pwd;
            }
            else if (pass < pwd) {
                //alert("猜錯了");
                intMax = pwd;
            }
        }
    </script>
</body>
</html>
```

Math.Random ( )

取亂數取 0 <= x < 1 之間之值

Math.floor ( )

取無條件捨入到最接近參數之值

else if ( 條件 ) { 函數 }&#x20;

搜尋到符合( 條件 )才執行 { 函數 }&#x20;

js裡面整數跟浮點數型態沒有區別，可以藉由輸入 . 檢測

isNaN 布林值 判斷是否 非數字資料

indexOf( ) 尋找位址 如果沒有則顯示-1

prompt抓得值其實是字串型態，輸入50 => "50"，

只要後面多數字運算就會進行隱含轉換為 數字型態

字串跟字串運算是比較內碼

### 應用2 musicplay

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ2lvrAHaGDon0I4qcz%2F-LZ2mvGhOOYeMPOTXxq4%2Fimage.png?alt=media\&token=c719f22b-b938-41cc-84d3-1a9b8ea2b2c8)

以前

外掛 硬體使用軟體 flash play&#x20;

瀏覽器本身其實沒辦法播放影片

HTML5 \<audio> 開始支援可以操控api

應用程式介面（英語：application programming interface，縮寫作API），又稱為應用編程介面，就是軟體系統不同組成部分銜接的約定。

{% embed url="<https://zh.wikipedia.org/zh-tw/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8E%A5%E5%8F%A3>" %}

tag name 可以跟id跟變數同樣姓名

var x = 欸柯斯   在js中 運算符號左右不用相同型別 會自動判斷為相同型別 並作置換

```
 var audio = document.getElementById("audio");
```

但在c#就必須很嚴謹 找出audio的容器

```
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        #play, #stop {
            border: 2px solid;
            box-shadow: 3px 3px 3px black;
            cursor: pointer;
        }
    </style>
</head>
<body>

    <audio id="audio">
        <source src="music/nothing.mp3" type="audio/mpeg" />
    </audio>

    <span id="play" onclick="PlayMusic()">播放</span>
    <span id="stop" onclick="StopMusic()">停止</span>


    <script>
        var audio = document.getElementById("audio");

        function PlayMusic() {
            audio.load();
            audio.play();
        }
        function StopMusic() {
            audio.pause();
        }

    </script>
</body>
</html>
```

## asp驗證器

每個驗證器功能不同且單一

必須要組合起來

ex. 1.必填 2.為數字 3... 4... 5...

### RangeValidator&#x20;

#### 不只是數字也可以套用在日期

asp.net webfroms 必須指定type因為後端運算是c#

vs裡面板手圖案為屬性 ，物件為淡藍色字

DateTime 取得執行這個程式碼的主機的時間資料

### RegularExpressionValidator  &#x20;

#### 驗證相關聯之輸入控制項的值，是否符合規則運算式指定的模式。

&#x20;*\_ \_ \_ \_ \_*

*第一碼 A-C*

*第二碼a-z*

```
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
ControlToValidate="txtAccount" ValidationExpression="[ABC][A-Za-z0-9]{4}"
 runat="server" ErrorMessage="(格式有誤)" 
ForeColor="Red" Font-Size="10pt"></asp:RegularExpressionValidator>
```

{% embed url="<https://dotblogs.com.tw/yami0524/2011/07/07/31249>" %}

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ3QFue7UZsZ95jY9Ts%2F-LZ3Tx9j_iZ7pCLZBOGW%2Fimage.png?alt=media\&token=c179b59c-cf7a-4256-8e5a-5e2353174201)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ3UqTccTmEFU1aDAaU%2F-LZ3VjL1GFoA5hN1T8Qx%2Fimage.png?alt=media\&token=8694fa8f-edf7-4316-8424-746568716744)

沒逗點就是一定要出現那個字元

必須 {次數} \[格式] /格式

### CustomValidator&#x20;

#### 自訂規則驗證器

ex.生分證字號

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ3kp8JUZKuh4zHFeHT%2F-LZ3kvPdCWED0IkMNrKd%2Fimage.png?alt=media\&token=313f3bb6-2497-4aba-978a-7198f3d43bff)

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ3kp8JUZKuh4zHFeHT%2F-LZ3mIuJuAEYgDRjlN1C%2Fimage.png?alt=media\&token=d7d40108-22d9-4af2-9c83-c19981a3abf2)

預設按鈕 \<form defaultbutton="Button1" >

{% embed url="<https://dotblogs.com.tw/mis2000lab/2012/11/09/asp_net_form_defaultbutton>" %}

## 偵錯 中斷點

![](https://1902678905-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LVJQfuBXyvHwCd1Nadk%2F-LZ3CkbR2C2qY2CaRsgV%2F-LZ3Ia7JodepaclDMMch%2Fimage.png?alt=media\&token=a93508f4-6027-48cd-83a7-c17ccf7d733e)

反白右鍵新增監看式查值並查使用方式

ex. google  c# datetime format&#x20;
