94918


複数の文字列のいずれかにマッチするパターンを記述する  
<https://www.javadrive.jp/javascript/regexp/index12.html>

このサイトを参考にしたところ、求めていることが出来たのですが、検索する単語をローカルストレージに保存して、呼び出そうとすると失敗してしまいます。

[code]

    var SearchWord = /hoge/;
    localStorage.setItem("key", SearchWord);
    var SearchWord = localStorage.getItem("key");
    console.log(SearchWord.test('TesthogeTest'));
    
[/code]

`VM213:4 Uncaught TypeError: SearchWord.test is not a function`

[code]

    var SearchWord = /hoge/;
    console.log(SearchWord.test('TesthogeTest'));
    
[/code]

`true`

どのようにすれば良いでしょうか。


CC BY-SA 4.0
2023-05-19T18:59:55.620
94915
2023-05-19T22:50:04.013
58374
question
javascript
JavaScriptで単語一致


[`localStorage`の説明](https://developer.mozilla.org/ja/docs/Web/API/Window/localStorage#%E8%AA%AC%E6%98%8E)に

> `localStorage` に保存されるキーと値は常に UTF-16 文字列 (1 文字に 2 バイトを使用する)
> になります。オブジェクトと同様に、整数のキーは自動的に文字列に変換されます。

とあるように文字列に変換されます。

>
[code]

>     var SearchWord = /hoge/;
>     localStorage.setItem("key", SearchWord);
>  
[/code]

において `SearchWord`
は文字列でなく[`RegExp`オブジェクト](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp)ですから文字列化されることを意識する必要があります。

[code]

    var SearchWord = /hoge/;
    localStorage.setItem("key", SearchWord.source);
    var SearchWord = new RegExp(localStorage.getItem("key"));
    
[/code]


CC BY-SA 4.0
2023-05-19T22:50:04.013
94918
2023-05-19T22:50:04.013
4236
94915
answer