इम, jQuery का उपयोग कर मैं कहाँ एक regex पैटर्न पूर्व के खिलाफ इनपुट सामग्री की जांच करना चाहिए जावास्क्रिप्ट में कुछ तर्क लेखन:जावास्क्रिप्ट कीकोड 46 DEL फंक्शन कुंजी या (।) अवधि चिह्न है?
"^[a-zA-Z0-9_]*$" //Alpha-numeric and _
तर्क लगभग पूरा हो चुका है, मैं सिर्फ एक छोटे से समस्या को छानने फ़ंक्शन कुंजी डेल है, मेरे तर्क इस प्रकार है:
var FunctionsKey = new Array(8, 9, 13, 16, 35, 36, 37, 39, 46);
function keypressValidation(key) {
if (config.regexExp != null) {
if ($.inArray(key, FunctionsKey) != -1) {
return true;
}
else {
var keyChar = String.fromCharCode(key);
return RegexCheck(keyChar);
}
}
return true;
}
तो कीकोड सरणी में उन में से एक है, मैं इसे पारित, नहीं तो मैं चार हो जाते हैं और यह REGEX के खिलाफ की तुलना करें। समस्या यह है: कुछ ब्राउज़रों में DEL और '।' (अवधि चिह्न) में एक ही कुंजी कोड 46 है।
तो फ़ंक्शन कुंजियों को फ़िल्टर करने के लिए एक बेहतर तर्क है या मुझे उस मामले के लिए एक शर्त लिखनी चाहिए, शायद सरणी से 46 को हटा दें और इसे चार में परिवर्तित करने का प्रयास करें और यदि है (।) इसे रेगेक्स फ़ंक्शन पर जाने दें यदि इसे पास न करें? अन्य प्रश्न कुछ ब्राउज़रों में और अधिक साझा कुंजी कोड होंगे?
संपादित करें: मेरे द्वारा सुझाए गए समाधान अभ्यस्त काम है क्योंकि यह कोई फर्क नहीं पड़ता उपयोगकर्ता दबाया (डेल या अवधि) मैं हमेशा कम से कम ओपेरा और एफएफ = (
मैं इसे आज़मा दूंगा, thx – JOBG
नोट: दो '।' कई कीबोर्ड पर कुंजी, दोनों को आजमाएं, (ऐसा लगता है कि अगर मुझे मृत मस्तिष्क कोशिकाओं से सही याद है तो ऐसा लगता है कि यह एक दशमलव हो सकता है :) आप एक चेतावनी() जोड़ सकते हैं; बिल्कुल –
ठीक से पता लगाने के लिए, सबसे पहले मुझे पता है कि आप कीप्रेस के बजाए कीडडाउन का उपयोग करते हैं, और ऐसा लगता है कि मेरे द्वारा चुने गए ईवेंट में एक अंतर है, वर्तमान में मैं कुंजीपटल का उपयोग कर रहा हूं और विधि के साथ परिणाम (।) = 0 (एफएफ) - 46 (ओप्र), डीएल = 46 दूसरी ओर कीडाउन (।) = 190, DEL = 46 दोनों ब्राउज़रों के लिए, अंतर क्यों? – JOBG