2012-02-09 8 views
0

サーバサイド変数を<%=value01%>として使用しています。value01が電子メールアドレスの場合は、JavaScript関数を実行する必要があります。私は動作していない以下の方法でJavaScriptを書いています。誰でもそれを修正してください。サーバサイド変数のJavaScript DOM

var myem = document.getElementByTagName('value01').value; 

    if(myem.value.match(/[.].*[@]|[@].*[.]/)) 
    { 
     alert('Value contains email'); 
    } 
+0

あなたがPHPを使用していますか? – cheeken

+0

javascriptサーバー側についてはnode.jsを参照し、DOMサーバー側についてはjsdom(https://github.com/tmpvar/jsdom)を参照してください。これは実際に必要と思われるものではありません。 –

+1

注意してください。あなたは2回 '' .value'を使用しています。これは '' getElement * s * ByName( 'value01')[0] ' – sinsedrix

答えて

1

は、非表示の入力を試してみてくださいまたは好ましくはHTML5 data-の属性を使用します。場合

var email = document.getElementById('interestingElement').value; // Hidden input 
var email = document.getElementById('interestingElement').attributes['data-email']; // data- attribute 
if (email.match(yourEmailRegex ... 
+0

これは私が欲しいものです。ありがとう:) –

0

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

/^[\w_\.\-]+\@[\w\-]+\.+[\w]+$/ 
0

<input id="interestingElement" type="hidden" value="<%=value01%>" /> // Hidden input 
<div id="interestingElement" data-email="<%=value01%>" /> // data- attribute 

Javascriptをあなたはヴァリをしたいすべての種類の電子メール(.comまたは.com.xxの両方)この正規表現は動作します:

/^([a-zA-Z0-9_.-])+\(([[a-zA-Z0) -9 - ])+)+([-ZA-Z0-9] {2,4})+しようとする$/

:。

var myem = document.getElementsByTagName('value01').value; 
var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

if(emailRegex.test(myem)) 
{ 
    alert('Value is a email'); 
} 
+1

それは 'my + address @ domainと一致しません。博物館は有効なメールです。 – Toto

+0

@leohackin - 私の質問は正規表現を必要としません。私は 'document.getElementsByTagName( 'value01')で問題が発生しました。 –