2017-05-30 9 views
0

文字と数字だけのパターンが必要です。JavaScriptによるパターン検証

これは私がそれを行う方法です...

のJavaScriptファイル:

var pattern_checked = checkPattern(); 

function checkPattern(){ 
     var elem = document.getElementById("name"); 

     var pattern = elem.getAttribute("[a-zA-Z0-9_]"); 
     var re = new RegExp(pattern); 
     if (re.test(elem.value)) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

しかし、両方のケースで、私はfalseを取得しています。

このコードで何が問題になっていますか?

+0

あなたも、あなたは '[-ZA-Z0のような属性をしていることを確認.Areあなたのhtmlを投稿することができます-9_] 'あなたのhtmlでこれは'パターンattr'と思います – prasanth

+2

'elem.getAttribute(" [a-zA-Z0-9 _] ")'が返すものをチェックしましたか? – Tushar

+0

あなたのパターンは属性値だと思います。 'elem.getAttribute(" attributeName ")'はあなたのパターンを返します。 – Eytibi

答えて

1

私はあなたが何を意図と信じて:あなたの問題は、この行にする必要があり

function checkPattern() { 
    var elem = document.getElementById("name"); 

    // Allow A-Z, a-z, 0-9 and underscore. Min 1 char. 
    var re = /^[a-zA-Z0-9_]+$/; 

    return re.test(elem.value); 
} 
+0

're.test()'はブール値を返します。ちょうどそれを返す。 – Rajesh

+0

それを逃した、指摘ありがとう! –

+0

それはまさに私が探していたものです。どうもありがとうございます! –

1

Example fiddle

var pattern = elem.getAttribute("[a-zA-Z0-9_]"); 

属性には通常値のある名前が必要です。しかし、あなたの例からは、価値も名前のようです。 HTMLコードは以下のようなものでなければなりません: -

<input type='text' id='name' pattern='[a-zA-Z0-9_]'> 

次に取得するためのパターン

var pattern = elem.getAttribute("pattern"); 
+0

ええ、それを得ました!私はhtmlファイルでパターンを言及しなかった。 –

関連する問題