2017-11-17 5 views
0

2つの正規表現を組み合わせること:はどのようにこれを使用して正規表現を使用して、私はジレンマを持って使用してAND演算子

var url = https://website.com/something-here/page.html?p=null#confirmation?order=123 

私の予想結果は次のとおりです:

私は、以下のURLを持っています

/something-here/page.html #confirmation 

それは、スペースまたはカンマであるか、または単に2(/something-here/page.html#confirmation)を組み合わせることができ

私は下に使用してこの2つの正規表現を行うことができます。

var a= url.match(/som([^#]+).html/)[0]; 

var b= url.match(/#([^#]+).tion/)[0]; 

console.log(a,b); 

しかし、私はそれは同じ結果と単一の正規表現として行わ持っていると思います。

私があなたにこれを手伝ってくれることを願っています。それは答えを探しているナットです。 。:(

おかげ

+1

なぜ単一の正規表現ですか? – Teemu

+0

1.正規表現の目的は何ですか?使用。 2.そのスペースとは何ですか? –

+0

私はそれらを組み合わせようとしているか、少なくとも作成するつもりのフォーム上に単一のフィールドとして単一のregExを作成する必要があります。*は一行正規表現しか受け入れません。 :( 私はこの形式を試しました^(?=。* some)(?=。*#)しかし動作しません スペースは2つを分けるだけですが、 –

答えて

-1

使用する各あなたの条件範囲では、「()」詳細はあなたがあなたの利点に正規表現のグループシステムを使用することができますhere

0

を探してみてください答えるここに抜粋です:。

var matches = url.match(/(som[^#]+.html).*?(#[^#]+.tion)/); 
console.log(matches[1] + " " + matches[2]); // prints /something-here/page.html #confirmation 

2つのRegExp条件を1つにまとめ、2つのグループを作成するために正しい領域にかっこで囲みます。

そのようにして、指定したグループを取得してその間にスペースを追加することができます。別に

+0

こんにちは@Tals、私はそれを実行しようとしましたが、それは私に一致のための配列のために予期しないエラーが発生します。私がそれらを取り除くと、それは私にヌル値を与えます。 また、値をそれぞれ[0]と[1]に置き換えようとしましたが、依然として同じ予期しないエラーが発生します。 この提案にも感謝します。 :) –

+1

こんにちはタルス、 私の最後に間違い、私はテストのために使用している他のシートでそれを実行しています。謝罪いたします。これは正しく、実行されています。 –

+0

クール!幸運:) – Tals

0

あなたの例のURLがで動作するので、(あなたは2つの検索のparamsを持っている)に非常に適して不正な形式ではないという事実 - 私はE命題を持っている:

URLオブジェクトとそのプロパティを使用しないのはなぜ?

url = new URL("https://website.com/something-here/page.html?p=null#confirmation?order=123"); 

と正確のように明示的な構文を使用してプロパティをつかむ:

url.pathname;>> "何か、ここに/ page.html"

url.hash;>>「#confirmationため? = 123 "

ただし、 2つのregExpsはあなたが必要なものを行う場合は、ここでのRegExpバリアント

エド、1

var url = "https://website.com/something-here/page.html?p=null#confirmation?order=123"; 
 
var match = url.match(/\/som.*?html|\#.*?tion/g); 
 

 
console.log(match.join(" "));

+0

こんにちはベキム、これほどあなたのためにtahnk。私はそれを実行することができた、それは今動作します。手伝ってくれてどうもありがとう!^_^ –

+0

@LeaSanchez偉大な、(今あなたはあなたに最適な答えを受け入れるなど、解決したとマークする必要があります)。 :) –

関連する問題