質問するログイン新規登録
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

439閲覧

jsonのリストから文字列検索をしたい

takashi_iizawa

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/03/13 12:58

0

1

アレクサスキルを作っています。
ユーザーの発話を userUtterance にテキストで取得し、禁止用語が入っていないかをngワードのリストから検索する処理を行いたいです。
今のコードは 'ほげほげ' しか検索対象になっていませんが、それをjsonのリストのテキストを検索対象にするにはどのようなコードを書けば良いでしょうか?

let allData = require("./ngword.json"); //jsonからNGワードの取得 if (userUtterance.indexOf('ほげほげ') === -1){ speakOutput += phlasePass + '<voice name="Matthew">' + userUtterance + '</voice>' + phlaseNext } else { speakOutput += 'NGワード' }
//jasonのNGワードのリスト [ { "word": "NGワード1" }, { "word": "NGワード2" }, { "word": "NGワード3" } ]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

たとえばこんなかんじで

javascript

1let allData = [ 2{"word": "NGワード1"}, 3{"word": "NGワード2"}, 4{"word": "NGワード3" } 5] 6 7const ngw = new RegExp(allData.map(data=>data['word']).join('|')) 8 9let userUtterance 10userUtterance = 'abcdefg' 11if (userUtterance.search(ngw) > -1) console.log('NG1') 12userUtterance = 'abNGワード1cdefg' 13if (userUtterance.search(ngw) > -1) console.log('NG2') 14userUtterance = 'abNGワード2cdefg' 15if (userUtterance.search(ngw) > -1) console.log('NG3') 16userUtterance = 'abNGワード3cdefg' 17if (userUtterance.search(ngw) > -1) console.log('NG4')

投稿2022/03/13 13:44

takasima20

総合スコア7468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takashi_iizawa

2022/03/14 13:35

NGワードが300個以上あるので、jasonからList読み込んで、Listに照らし合わせながらループ処理するようなコードを書きたいです。 NGワードが数個であれば、提案の内容でよかったのですが、言葉足らずで申し訳ないです。
takasima20

2022/03/14 20:33

現状、リストからNGワードを読み込んで、それを元に判断できるようになっていますが それだと不満があるということでしょうか? コードの後半部分は単に動作確認のためのもので、NGワードを個別に判断条件にしているわけではありませんよ? もしかして、ループ中になにかNGワード判断以外にもなにかやりたいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問