質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

4763閲覧

正規表現自体は書けていそうだが、それをif文で使用することができない。wordpress、js

tenlife

総合スコア70

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/08/11 21:57

wordpressで正規表現を書いています。

解決したいこと: 正しく正規表現を動かしたいです。

現状: 文字列判定になってしまったり、エラーが「出てしまいます。正規表現自体はあっていそうです(https://regexper.com/)。

jsファイルに記述しています。
以下のようになっているかを判別するのに使用しています。
?paged=2&page_id=21
if(hogehoge === url)

let url = ?paged=\d{0,}\&page_id=\d{0,}; ⬇︎ Uncaught SyntaxError: Invalid or unexpected token

上は書き方が怪しい?

let url = /?paged=\d{0,}\&page_id=\d{0,}/; ⬇︎ 文字列扱いになってしまいます。

RegExpで作ってみよう

let url = new RegExp('?paged=\d{0,}\&page_id=\d{0,}') ⬇︎ Uncaught SyntaxError: Invalid regular expression: /?paged=d{0,}&page_id=d{0,}/: Nothing to repeat

https://regexper.com/で?paged=\d{0,}\&page_id=\d{0,}をチェックしてみたところ問題なさそうでした。
ですが実際に使用しようとするとエラーが出てしまったりする状態です。

おそらく書き方に問題があるのではと思っているのですが、原因を特定出来ずにいます。

どなたかお分かりになる方居ましたら、ご教授いただきたいです。
よろしくお願いいたします。

jquery-3.5.1

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

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

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

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

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

maisumakun

2020/08/11 22:15

urlを「使う側」のコードはどの様になっていますか?
gouf

2020/08/12 03:06

ヒットさせたい文字列と ヒットさせたくない文字列 両方を、質問欄に追記することは可能ですか?
guest

回答2

0

ベストアンサー

もしかしてRegExpオブジェクトの使い方がわからないって感じですかね?

単にマッチするか判定したいだけならtestメソッドで充分

js

1const reg=/?paged=\d{0,}\&page_id=\d{0,}/; 2console.log(reg.test('?paged=2&page_id=21'));//true 3console.log(reg.test('?hoge=hoge&fuga=fuga'));//false 4console.log(reg.test('?paged=&page_id='));//trueだけどいいの?

投稿2020/08/12 04:26

KazuhiroHatano

総合スコア7819

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

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

tenlife

2020/08/12 20:40 編集

返信遅れてしまいました。 回答ありがとうございます! 初めて使う機会でした。 御教授ありがとうございます、参考にさせていただきました!
guest

0

let url = ?paged=\d{0,}&page_id=\d{0,};
上は書き方が怪しい?

はい。文法的に意味不明です。

let url = /?paged=\d{0,}&page_id=\d{0,}/;
文字列扱いになってしまいます。

この書き方が正しいです。「文字列扱いになってしまいます」という判断の方が間違っています。

let url = new RegExp('?paged=\d{0,}&page_id=\d{0,}')

引用符で囲まれた文字列の中に\という文字を入れたい場合は\と重ねます。
つまり、let url = new RegExp('\?paged=\d{0,}\&page_id=\d{0,}');です。

投稿2020/08/12 00:18

otn

総合スコア85901

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

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

tenlife

2020/08/12 20:38 編集

返信遅れてしまいました。 回答ありがとうございます! それぞれ分けて説明してくださり非常に勉強になります。 丁寧な説明ありがとうございました!
otn

2020/08/12 23:19

ちなみに、何を見て「文字列扱いになってしまいます」と思ったのでしょうか?
tenlife

2020/08/14 07:08

console.logを使ってみていたのですが、そこで判断していました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問