0
我不是在尋找一個插件,只需要簡單的jQuery函數和regexp。我對CSS或PHP/SSI解決方案也不感興趣。需要使用jQuery解決方案將輸入值更改爲UpperCase,Capitalize,Numbers only,Symbols Only和AlphNumeric Only on keyup
鑑於這一點,我有以下代碼片段,目前無法正常工作。我希望保持類似的選擇器格式,正則表達式syntex也被單獨測試。所以,請看代碼並讓我知道問題是什麼。
在此先感謝。
代碼鏈接:http://jsfiddle.net/TnpZY/1/
Currernt代碼:
$('input').live('keyup', function(e) {
var val = this.value;
var defaults = {
format: 'numeric',
uppercase: false,
lowercase: false,
capit: false,
nospace: false,
pattern: null
};
switch(defaults.format)
{
case 'text':
var pattern = new RegExp('[0-9]+', 'g');
val = val.replace(pattern, '');
break;
case 'alpha':
var pattern = new RegExp('[^a-zA-Z]+', 'g');
val = val.replace(pattern, '');
break;
case 'number':
case 'numeric':
var pattern = new RegExp('[^0-9]+', 'g');
val = val.replace(pattern, '');
break;
case 'alphanumeric':
var pattern = new RegExp('[^0-9a-zA-Z]+', 'g');
val = val.replace(pattern, '');
break;
case 'custom':
var pattern = new RegExp(defaults.pattern, 'g');
val = val.replace(pattern, '');
break;
case 'all':
default:
if(typeof defaults.format == 'function')
var val = defaults.format(val);
break;
}
if(defaults.nospace)
{
var pattern = new RegExp('[ ]+', 'g');
val = val.replace(pattern, '');
}
if(defaults.uppercase)
val = val.toUpperCase();
if(defaults.lowercase)
val = val.toLowerCase();
if(defaults.capit)
String.prototype.capitalizet = function(){ return this.charAt(0).toUpperCase() + this.slice(1); }
val = val.capitalizet();
if(val != this.value)
this.value = val;
});
你也可以告訴我,我怎麼可以編寫,以便它添加爲$ .extend功能,我將能夠使用它像$(」 .class')。validator({uppercase:true}); ? – Tumharyyaaden
@Tumharyyaaden抱歉,我不知道:S從來沒有嘗試過。 –