2017-03-08 1 views
0

JavaScriptを初めて使い、変数が有効なIPv4アドレスかどうかを確認する簡単な関数を作成しようとしています。IPv4正規表現に対して変数を正しく一致させる方法

現在、私はonline toolのコードを試しています。

stackexchangeから正規表現をコピーし、ハードコードされた変数とマッチさせようとしましたが、オンラインエディタは無効なJavaScriptコードだと主張します。

ip='127.0.0.1'; 

if (ip.match(^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$){ 
    alert('IPv4'); 
} 
else{ 
    alert('no IPv4'); 
} 

静的変数が正当なIPv4アドレスであるかどうかを正しく確認するにはどうすればよいですか?

答えて

1

あなたは区切り文字で正規表現を囲むようにあります。

if (ip.match(/^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$/)){ 
// here __^                                      and here __^ 

あなたが正規表現の長さを短くするために数量詞を使用することができます。

if (ip.match(/^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])(\.[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]){3}$/)) { 
+0

正規表現リテラル構文を使用する場合は、ドットエスケープがちょうど 'でなければなりません\。 – slebetman

+0

ありがとう、私は、正規表現を区切る必要がありますが、私はif文を私の代わりに使用することを理解しています。 、私はまだOPで言及したウェブサイトによると、無効なJavaScriptコードを取得します。 –

+0

私は、 ')'が欠落していると信じていますが、それはそれです - 答えに感謝します! –

関連する問題