MailForm Proの入力チェックについて
MailForm Proはperlで作られた商用フリーの入力フォームです。詳しくは過去記事参照
https://www.messiahworks.com/archives/2454
フォームの入力制限機能もあるのですが、以下の4種類しかないです。
				// data-charcheck=”digit” 数字のみ
				// data-charcheck=”alphabet” 英語のみ
				// data-charcheck=”digit_and_alphabet” 英語と数字のみ(記号含まず)
				// data-charcheck=”kana” 全角カタカナのみ
例えば、番地を入力させる時には、「半角数字と半角ハイフン」のみに制限したい時は、自分でソースを修正しないといけません。
とはいえ、正規表現さえ分かっていれば、簡単です。
アラート文字列にも、「全角カナ」「半角数字」など半角・全角の指摘を入れてみました。
修正ファイル: mailformpro\add-ons\charactercheck.js
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  | 
						mfp.extend.event('check', 	function(obj){ 		if(obj.name != ""){ 			if((mfp.Elements[obj.name].type == "text" || mfp.Elements[obj.name].type == "textarea") && obj.getAttribute('data-charcheck') && obj.value != "" && obj.value != obj.defaultValue){ 				// data-charcheck="digit" 数字のみ 				// data-charcheck="alphabet" 英語のみ 				// data-charcheck="digit_and_alphabet" 英語と数字のみ(記号含まず) 				// data-charcheck="kana" 全角カタカナのみ 				// data-charcheck="digit_and_hyphen" 半角数字とハイフンのみ(番地用) 				// data-charcheck="digit_and_kana" 半角数字と全角カタカナのみ(住所用) 				if(obj.value.match(/[^0-9]/) && obj.getAttribute('data-charcheck') == 'digit') 					mfp.ExtendErrorMsg = '$name に半角数字以外の文字が入力されています。'; 				else if(obj.value.match(/[^A-Za-z]/) && obj.getAttribute('data-charcheck') == 'alphabet') 					mfp.ExtendErrorMsg = '$name に半角英字以外の文字が入力されています。'; 				else if(obj.value.match(/[^A-Za-z0-9]/) && obj.getAttribute('data-charcheck') == 'digit_and_alphabet') 					mfp.ExtendErrorMsg = '$name に半角英数字以外の文字が入力されています。'; 				else if(obj.value.match(/[^ァ-ヶー]/) && obj.getAttribute('data-charcheck') == 'kana') 					mfp.ExtendErrorMsg = '$name に全角カタカナ以外の文字が入力されています。'; 				else if(obj.value.match(/[^0-9\-]/) && obj.getAttribute('data-charcheck') == 'digit_and_hyphen') 					mfp.ExtendErrorMsg = '$name に半角数字と半角ハイフン以外の文字が入力されています。'; 				else if(obj.value.match(/[^0-9\-ァ-ヶー]/) && obj.getAttribute('data-charcheck') == 'digit_and_kana') 					mfp.ExtendErrorMsg = '$name に半角数字と全角カタカナ以外の文字が入力されています。'; 			} 		} 	} );  | 
					
それにしても、全然コメントがない…。
異常なぐらい無いので、リリース前に削除しているのだろうか?