मैं एक तरह के संपर्क फार्म के लिए कुछ क्लाइंट साइड सत्यापन पर काम कर रहा हूँ में शामिल है, वेबसाइट वर्तमान में नहीं ऑनलाइन तो सर्वर साइड प्रासंगिक नहीं है।चेक यदि सरणी मान स्ट्रिंग
मैंने पहले प्रपत्र 'प्रस्तुत' है अश्लील भाषा के किसी भी अपमानजनक पर पकड़ने के लिए एक 'शब्द फिल्टर' बनाने के लिए कोशिश कर रहा हूँ।
यहाँ कोड, अश्लीलता परोसने के बिना ...
function filterInput(str) {
var inputFilter = ['word1', 'word2', 'word3'];
var arrayLength = inputFilter.length;
if (inputFilter.indexOf(str) > - 1) {
// Word caught...
} else {
// Clear...
}
उपयोगकर्ता word1 'दर्ज करना हो तो यह शब्द पकड़ लेंगे। यदि उपयोगकर्ता 'word1word2' या 'जॉन एक शब्द 3' में प्रवेश करता है, तो उसे पकड़ नहीं आता है।
मैं मूल रूप से जो बेहतर काम किया पाश के लिए एक था, लेकिन अभी भी ('word1word2') शब्दों के बीच खाली स्थान के बिना काम नहीं होता।
किसी भी इनपुट बहुत सराहना की जाएगी, मैं खोज रहा है, लेकिन कुछ भी नहीं काफी मेरी जरूरतों से मेल खाता है।
संपादित करें: तो मैं भी एक समाधान के साथ आ गए हैं, लेकिन अलग-अलग तरीकों से इस प्राप्त किया जा सकता मैं यह कैसे काम करता है के रूप में उत्सुक हूँ और यह भी कारण है कि एक खास तरह से बेहतर है देख रहे हैं?
Heres क्या मैं के साथ आया था ...
function filterInput(str) {
var inputFilter = ['word1', 'word2', 'word3'];
var arrayLength = inputFilter.length;
for (var i = 0; i < arrayLength; i++) {
if (str.includes(inputFilter[i])) {
window.alert('Message...');
return;
}
}
}
मैं मैं केवल शुरुआत कर रहा हूं, इसलिए मुझे लगता है कि मैं अब ES2015 + से बचूंगा। कुछ के लिए, यह मेरे साथ आने के मुकाबले कैसे काम करता है? – mrkd1991
@ mrkd1991: सुनिश्चित नहीं है कि "यह कैसे काम करता है" से आपका क्या मतलब है। यदि आपका प्रदर्शन प्रदर्शन है, तो जावास्क्रिप्ट इंजन फ़ंक्शन कॉल पर ** बहुत ** तेज़ हैं। यहां एक लेख है जो मैंने 2012 में उस पर किया था; http://blog.niftysnippets.org/2012/02/foreach-and-runtime-cost: भी IE6, धीमी JavaScript इंजन आप के लिए पूछ सकते हैं, उन्हें इतनी तेजी से यह एक कारक नहीं था।एचटीएमएल –
जैसा कि, वांछित परिणाम प्राप्त करने के लिए यह कार्य क्या करता है, और उस और मेरे नए प्रयास के बीच क्या अंतर है? – mrkd1991