回答編集履歴
5
強調など
    
        answer	
    CHANGED
    
    | @@ -1,7 +1,9 @@ | |
| 1 | 
            -
            下のコードはエスケープされていない文字を渡してそのままinnerHTMLに入れるとXSSの脆弱性になるので、使わないで下さい。DOMを作る方向にしないと安全じゃないです。
         | 
| 1 | 
            +
            下のコードはエスケープされていない文字を渡してそのままinnerHTMLに入れるとXSSの脆弱性になるので、**そのままでは絶対に使わないで下さい。**DOMを作る方向にしないと安全じゃないです。
         | 
| 2 2 |  | 
| 3 3 | 
             
            **この回答は忘れて下さい。**
         | 
| 4 4 |  | 
| 5 | 
            +
            ※悪い例として、回答は残します。
         | 
| 6 | 
            +
             | 
| 5 7 | 
             
            ---
         | 
| 6 8 |  | 
| 7 9 | 
             
            ```JavaScript
         | 
4
codepenは応急処置した
    
        answer	
    CHANGED
    
    | @@ -14,6 +14,6 @@ | |
| 14 14 | 
             
                (han ? `<span class=han>${han}</span>` : ''));
         | 
| 15 15 | 
             
            ```
         | 
| 16 16 |  | 
| 17 | 
            -
            [Codepenでの**やってはいけない**実装例](https://codepen.io/raccy/pen/VwLMrry)
         | 
| 17 | 
            +
            [Codepenでの**やってはいけない**ことをやったのでとりあえず応急処置だけでした実装例](https://codepen.io/raccy/pen/VwLMrry)
         | 
| 18 18 |  | 
| 19 19 | 
             
            上の例ではstyleはclassで指定しています。GoogleCromeでしか動作テストはしていません。
         | 
3
忘れて下さい
    
        answer	
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            下のコードはエスケープされていない文字を渡してそのままinnerHTMLに入れるとXSSの脆弱性になるので、使わないで下さい。DOMを作る方向にしないと安全じゃないです。
         | 
| 2 2 |  | 
| 3 | 
            -
            **この回答は忘れて | 
| 3 | 
            +
            **この回答は忘れて下さい。**
         | 
| 4 4 |  | 
| 5 5 | 
             
            ---
         | 
| 6 6 |  | 
2
やばい、これは脆弱だ!
    
        answer	
    CHANGED
    
    | @@ -1,3 +1,9 @@ | |
| 1 | 
            +
            下のコードはエスケープされていない文字を渡してそのままinnerHTMLに入れるとXSSの脆弱性になるので、使わないで下さい。DOMを作る方向にしないと安全じゃないです。
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            **この回答は忘れてく忘れて下さい。**
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ---
         | 
| 6 | 
            +
             | 
| 1 7 | 
             
            ```JavaScript
         | 
| 2 8 | 
             
            const decorate = str => str.replace(
         | 
| 3 9 | 
             
              /(\p{Script=Latin}{2,})?(\p{Script=Hiragana}{2,})?(\p{Script=Katakana}{2,})?(\p{Script=Han}{2,})?/gu,
         | 
| @@ -8,6 +14,6 @@ | |
| 8 14 | 
             
                (han ? `<span class=han>${han}</span>` : ''));
         | 
| 9 15 | 
             
            ```
         | 
| 10 16 |  | 
| 11 | 
            -
            [Codepenでの実装](https://codepen.io/raccy/pen/VwLMrry)
         | 
| 17 | 
            +
            [Codepenでの**やってはいけない**実装例](https://codepen.io/raccy/pen/VwLMrry)
         | 
| 12 18 |  | 
| 13 19 | 
             
            上の例ではstyleはclassで指定しています。GoogleCromeでしか動作テストはしていません。
         | 
1
スペルミスと不要な括弧を外した
    
        answer	
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            ```JavaScript
         | 
| 2 | 
            -
            const decorate =  | 
| 2 | 
            +
            const decorate = str => str.replace(
         | 
| 3 3 | 
             
              /(\p{Script=Latin}{2,})?(\p{Script=Hiragana}{2,})?(\p{Script=Katakana}{2,})?(\p{Script=Han}{2,})?/gu,
         | 
| 4 4 | 
             
              (_, latin, hiragana, katakana, han) => 
         | 
| 5 5 | 
             
                (latin ? `<span class=latin>${latin}</span>` : '') +
         | 
| @@ -10,4 +10,4 @@ | |
| 10 10 |  | 
| 11 11 | 
             
            [Codepenでの実装](https://codepen.io/raccy/pen/VwLMrry)
         | 
| 12 12 |  | 
| 13 | 
            -
            上の例では | 
| 13 | 
            +
            上の例ではstyleはclassで指定しています。GoogleCromeでしか動作テストはしていません。
         | 
