2016-09-12 5 views
0

スーパー基本的な質問(これは私がおそらくそれほど投稿してはいけないと思われますが、ここにあります)://imagesで始まるすべてのリンクにマッチする(そして関数から除外する)正規表現を作成しようとしていますが、私の人生はそれを働かせる。正規表現のマッチは分かりません。どれくらい離れていますか?

今私が持っている:

$('a:not([href^=/\/\images])').each(function(){ 

しかし、それは明らかに正しくない、と私は本当にどこまっすぐにそれを設定するために探し始めるかわからないので、私はアドバイスを求めています。私は文字列などをエスケープするのに慣れていますが、これはかなり異なるようです(?)。

また、私はhttp://regexr.com/https://txt2re.com/を使ってみました(後者の作業方法は分かりませんでした...)しかし、正直なところ、私は基本的にこの時点でどこに置くべきかについての手がかりがないように感じます推測する。

このような基本的な質問を投稿して申し訳ありませんが、今、これは私にとって悲しいことです。

答えて

1

これはjQueryや正規表現とはほとんど関係ありません。あなたが求めているのは、CSSのセレクタであり、異なる動作をしています。問題は/\/\\/\/です。

ここで実際にスラッシュをエスケープする必要はありません。

let images = document.querySelectorAll('a:not([href^="//images"])'); 
 
console.log(images);
<a href="//images/cat.jpg">cat</a> 
 
<a href="//images/dog.jpg">dog</a> 
 
<a href="/images/fox.jpg">fox</a> 
 
<a href="/images/bear.jpg">fox</a>

+0

回答に感謝します、それを感謝してください!私は混乱を避けるためにこれを読んでおく必要があることを今すぐ見ています。 – Lenny

1

これは正規表現ではない、つまりJQueryセレクタです。これは、それらを一致させる方法です:

$("a:not([href^='//images'])").each(function(){ 
     console.log($(this).attr('href')); 

    }); 
+0

あなたがここにスラッシュをエスケープスキップ知りませんでした。クール。 – naomik

+0

ああ、私は本当に外出していました。このようなことについても読んでみる必要はありますが、間違いありません。私をまっすぐにしてくれてありがとう – Lenny

+1

はい、私は "jQuery selector"を書いたことを確認しましたが、@naomikは "CSSセレクタ"にもっと正しいと言っていましたが、とにかく正規表現で何も持っていません。 – ban17

関連する問題