2011-04-13 10 views
0

imputとしてcsvファイルを取得するスクリプトなどを探しています。 ファイルを1行ずつ解析し、現在の行に有効なメールが含まれているかどうかを確認します(例:[email protected]無効な電子メールアドレスからファイルを消去する方法

これは既にどこかに存在しているはずです。

javascript/jqueryを含むローカルのhtmlファイルが完璧です。

私は、確認なしで手動で入力した電子メールでリストをチェックする必要があります。

おかげ ミシェル

+0

Webページは、多分あなたはそれが[Windowsのスクリプト](http://msdn.microsoft.com/en-us/library/czxefwt8(V = VS.85).aspxので行いたく、方法ではありません)代わりに? –

+0

私はJavaScriptがこれを行うための最良のツールだとは思わない。おそらく、PHPのようなサーバー側のスクリプトが良いでしょう。 – kjy112

答えて

0

あなたはjavascriptを使用してローカルファイルを読み書きできるように文句を言わない、私はルビーでこれを書いています。コードがあなたにとって役に立たない場合は、正規表現になります。

#!/usr/bin/ruby 
File.open("somefile.csv").each{ |line| 
    if line =~ /\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,6}/ 
     puts "Good email!" 
    else 
     puts "FAIL" 
    end 
} 
0

1)電子メールアドレスの検証は非常に難しいことに注意してください。実際には完全に行うことは不可能です。これは、表現の複雑さ、カバレッジ、正確さ(誤検出)のトレードオフです。電子メールアドレスの検証については、他にも多くの質問があります。http://www.regular-expressions.info/email.html

2)フラットファイル(.csv)があります。あなたはブラウザでjavascriptと処理でこれを読むことはできません。他の言語を見る必要があります。 PerlとJavaは2つの言語が良い正規表現をサポートしていることをランダムに言及しています。

0

あなたはJavascriptのソリューションを探しましたので、ここであなたは、このようなCSVデータを含むいくつかのファイルを持っていると仮定すると、いくつかの平野JSである:ここでは

<pre id="csv"> 
a,b,[email protected]!tld 
1,2,[email protected] 
4,5,[email protected] 
</pre> 

あなたがセパレーターを交換したい場合がありますスクリプトです、使用された改行またはアドレスを確認するための正規表現。 Validate email address in JavaScript?

var separator = ',', 
    linebreak = '\n', 
    regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, 
    csv = document.getElementById('csv'), 
    lines = csv.innerHTML.split(linebreak), 
    fields, 
    i; 

for(i = 0; i < lines.length; i++) 
{ 
    fields = lines[i].split(separator); 
    if (regex.test(fields[mailColumn])) 
    { 
     document.write(fields[mailColumn] + ' is valid<br/>'); 
    } 
} 
0

こんにちは、あなたの答えをありがとう:あなたの検証要件に応じて、ここで、他の正規表現を探しています。 私は結局、ローカルのhtmlファイルとjavascriptを使ってそれを行うことに成功しました。

  1. は(XAMPPのような)ローカルWebサーバをお持ちの
  2. は上のロードされたファイルの分割AJAX
  3. でcsvファイルをロードするために(たとえば)のjQueryを使用するHTMLファイルを作成します。ここで は方法があります配列への\ n(改行)文字
  4. 必要に応じて各配列要素を処理します(「;」などで再度分割します)。)
  5. 2つのtextareaフィールドを入力します。有効なメールアドレスを持つ1、無効なもの
  6. と他の手動で新しいクリーンなファイルをコピー/有効TEXTAREA過去
  7. 無効なテキストエリアから住所がを修正または削除

は、それが動作させるためには、私はその後、私は

生コード:-)それを

出来上がりをロードするために、「入力タイプ=ファイル」を使用し、htmlファイルの隣にあるCSVファイルを配置します。

<!DOCTYPE html> 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Validation email</title> 
<script src="jquery.js"></script> 
<script> 
function isValidEmailAddress(emailAddress) { 
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
return pattern.test(emailAddress); 
}; 


function no_accent (my_string) { 
    var new_string = ""; 
    var pattern_accent   = new Array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ý','þ','ÿ'); 
    var pattern_replace_accent = new Array('A','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','D','N','O','O','O','0','O','O','U','U','U','U','Y','b','s','a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','y','b','y'); 
    if (my_string && my_string!= "") { 
     new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string); 
    } 
    return new_string; 
} 

$(document).ready(function() { 
    $('#checkMail').click(function() { 

    $('#invalid').val(''); 
     $('#valid').val(''); 

     $.ajax({ 
     type: "GET", 
     url: $('#fileName').val(), 
     dataType: "text", 
     cache:false, 
     success: function(text) { 
      alert("Start process"); 
      var reg=new RegExp("\r\n", "g"); 
      var monTab = text.split(reg); 

      for (cpt=0;cpt<monTab.length;cpt++){ 


//do some custom check here if needed 

       if (isValidEmailAddress(monTab[cpt])){ 
        //add to valid textarea 
        document.getElementById('valid').value += monTab[cpt] + "\r\n"; 
       } else { 
        //add to invalid textarea 
        document.getElementById('invalid').value += monTab[cpt] + "\r\n"; 
       } 
      } 
      alert("Process over!"); 
     } 
     });//close $.ajax 
    }); 
}); 

</script> 
</head> 
<body> 
<input type="file" name="myfile" size="50" id="fileName"> (put csv file next to this html file)<br/> 
<input type="button" value="Process" id="checkMail"> 
<br/> 
Invalid adresses : <br/> 
<textarea id="invalid" cols="80" rows="20"></textarea> 
<br/> 
Valid adresses : <br/> 
<textarea id="valid" cols="80" rows="20"></textarea> 
</body> 
</html> 
関連する問題