---
# System prepended metadata

title: string

---

# String的延伸功能
###### tags: `NKFW 網頁設計入門`

---

## Substring
* 說明:可以把string的一部分給抽出來
* substring<起始位置，結束位置>
這裡的位置是可以把string當作陣列看，而裡面的位置就是填數字，由0開始
* 結果會把在起始和結束之間的值印出來
* 例如:
```javascript!
var sentence="My name is May";
var name=sentence.substring(11,14);
console.log(name);    
```

---


* 上圖例子結果:
![](https://i.imgur.com/IA6w85L.png)


---


| M   | y   |     | n   |  a  | m   | e   |     | i   | s   |     | M   | a   | y   |
| --- | --- | --- | --- |:---:| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0   | 1   | 2   | 3   |  4  | 5   | 6   | 7   | 8   | 9   | 10  | 11  | 12  | 13  |

* M代表0，Y代表1，空格也要算進去。以此類推如果要印出May，他在10到14之間，所以要打成substring(10,14)

---

:::info
小測驗: "There is a big trouble"，請印出"a"+"trouble"
:::

---

:::spoiler 解答
```javascript=
    <script>
        let sentence="There is a big trouble"
        console.log(sentence.substring(9,10)+" "+sentence.substring(15,22))
    </script> 
```
:::

---

## Indexof
* indexOf()則可以返回字元或字串的位置(以數字表示)。
* 例如:
```javascript!
var str="My name is May";
var num=str.indexOf("May");
console.log(num);
```

---

* 結果:

![](https://i.imgur.com/ECAQdMv.png)

所以，要顯示出May的位置，而May前面總共有11個字元(s)。

---

:::info
這是一段文字，"You are studing Web and javascript"，請利用indexof求出"s"+"e"+"t"的index數字是多少
:::

---

## 樣板字面值
* 可以把字串變數用${ }這個括起來，在印出來時可以更加方便，適用於多個字串變數
* 外圍需要用``這個括起來
* 例如:
```
var a="NCU";
var b="NCCCU";
console.log(`${a}跟${b}不一樣`);
```

---

* 結果:
![](https://i.imgur.com/b6QJnMx.png)

---

## split()使用:
* split可以對字串進行切割
* 使用方法，split("你想要以甚麼切割")
* 範例:
```javascript!
    let sentence='I am already tired';
    let word=sentence.split(" ");//這裡對空白進行切割
    let a=sentencee.split('a')
    console.log(a)
    //a=['I ','m ','lre','dy tired']
    console.log(word)
    //word=['I','am','already','tired']
    console.log(word[0])
    // output='I'
```

---

## Project
:::success
輸入一電子郵件，判斷是否符合電子郵件格式，輸入必須有包含@gmail.com，如果符合格式，用console印出True，沒有印出false(小提示:可以用'@'進行切割，在看後面有沒有符合)
:::
:::spoiler 解答

---

```javascript=
    <script>
        while(true){
            let enter=prompt("請輸入電子郵件")
            let judge=enter.split('@')
            //if enter="dss@gmail.com"
            // judge=['dss','gmail.com']
            if(judge[1]=="gmail.com"){
                alert("success")
                console.log("true")
                break;
            }
            else{
                alert("false")
                console.log("false")
            }
        }
    </script> 
```
:::