0

特定のURLを検証する正規表現がありますが、実際には機能していません。このようなURLを検証したい----->https://example.co.nz/#![RANDOM_KEYS_HERE]。
httpsだけでやりたいです。最も重要なことは、ユーザーの入力がhttpsと一致する必要があることです:// example.co.nz/#!しかし、#!の後に、ユーザーは好きなものを置くことができます。

ここにコードがあります:私はコードが偽造されていることを知っていますxD私はその笑の基本的な知識を持っています

#^https://example+\.[co\.nz][a-z0-9-_.]+\.[a-z]{2,4}#i

誰かが私がそれをするのを手伝ってくれるなら、それは素晴らしいことです!ありがとう!

4

4 に答える 4

1

えーと...近くもありません。正規表現は次のようになります。

  • 文字列の先頭から開始...
  • 文字通り一致するhttps://exampl
  • 1つ以上一致するe
  • リテラルと一致する.
  • これらのいずれかに一致します。cnoz.
  • これらの1つ以上に一致します。a-z0-9-_.
  • リテラルと一致する.
  • 2文字と4文字を一致させる

これはあなたが探しているものとはまったく異なります。結局のところ、私はあなたがこれを通過させたくないと思います:

https://exampleeeeeeeeeeee.complete.and.total.failure.-_-.lol

代わりに、これを試してください:

(^https://example\.co\.nz/#!(.*))

この正規表現は次のようになります。

  • 文字列の先頭から開始...
  • 文字通り一致するhttps://example.co.nz/#!
  • その後すべてをキャプチャします
于 2013-03-21T21:55:43.850 に答える
0

これを試してみてください:

^https:\/\/example\.co\.nz\/\#\!(.*)$

最後の括弧は、IDを引き出すことができるようにする部分式の一致を行います。

if (preg_match('/^https:\/\/example\.co\.nz\/\#\!(.*)$/', $searchString, $matches)) {
    $id = $matches[1];
}
于 2013-03-21T21:56:53.747 に答える
0

そこで正規表現は必要ありません。文字列がサブ文字列で始まるかどうかを確認する必要があります。これをチェックして:

if(strpos($url, 'https://example.co.nz/#!')===0)
{
    echo 'url is OK';
}
else
{
    echo 'url is wrong';
}

http://www.php.net/manual/en/function.strpos.php

これがお役に立てば幸いです。

于 2013-03-21T21:58:23.917 に答える
0
if (preg_match('%^https://example\.co\.nz/#!(.+)$%i', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}

または、これで[RANDOM_KEYS_HERE]パーツを取得できます

if (preg_match('%^https://example\.co\.nz/#!(.+)$%i', $subject, $regs)) {
    $result = $regs[0];
} else {
    $result = "";
}
于 2013-03-21T21:56:29.043 に答える