jQueryなど便利なライブラリもいいですが、軽量でカスタマイズ自由自在なオリジナリティあふれるネイティブJavaScriptを書くのもいいかも。
jQueryなど便利なライブラリもいいですが、軽量でカスタマイズ自由自在なオリジナリティあふれるネイティブJavaScriptを書くのもいいかも。

メールアドレス文字列から不正な記号を取り去る

注意
これらの記事は2016年当時の物で結構古いです。モダンブラウザでは不要な記述やJavaScriptでなくともCSSで実現できる機能もあります。 当時の記録として残してありますがあまり参考になるものではありません。
概要
メールアドレス文字列の全角文字を半角に変換し、メールアドレスで許可されていない記号を削除します。
使用方法
コメントの通りですが、適宜呼び出します。
備考
メールフォームで、入力された文字が全角だったりした場合、そのまま処理して送信エラーを出してしまう事を防ぎます。
また、「全角文字が入力されています。」というアラートを出すよりも適切に変換した方が親切かと思います。

/**
 * メールアドレス文字列から不正な記号を取り去る
 *
 * usage:
 * SafetyEmail.render(str);
 *
 * @author ao-system
 */
var SafetyEmail = {
	render: function(str) {
		var replaceFm = new Array(
			'@','.','_','-','0','1','2','3','4','5','6','7','8','9'
			,'a','b','c','d','e','f','g','h','i','j','k','l','m'
			,'n','o','p','q','r','s','t','u','v','w','x','y','z'
			,'A','B','C','D','E','F','G','H','I','J','K','L','M'
			,'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
		);
		var replaceTo = new Array(
			'@','.','_','-','0','1','2','3','4','5','6','7','8','9'
			,'a','b','c','d','e','f','g','h','i','j','k','l','m'
			,'n','o','p','q','r','s','t','u','v','w','x','y','z'
			,'a','b','c','d','e','f','g','h','i','j','k','l','m'
			,'n','o','p','q','r','s','t','u','v','w','x','y','z'
		);
		for (var key in replaceFm) {
			str = str.replace(new RegExp(replaceFm[key], 'g'),replaceTo[key]);
		}
		str = str.toLowerCase();
		var result = inArrayStr(str,replaceTo);
		return result;

		function inArrayStr(str,searchAry) {
			var strAry = str.split('');
			var result = '';
			for (var key in strAry) {
				if (inArray(strAry[key],searchAry)) {
					result += strAry[key];
				}
			}
			return result;
		}
		function inArray(needle,ary) {
			for (var key in ary) {
				if (needle == ary[key]) {
					return true;
				}
			}
			return false;
		}
	}
};