2013-10-03 8 views
6

यहां के लिए RegEx परीक्षण क्या है?यह जावास्क्रिप्ट कथन (नियमित अभिव्यक्ति) का क्या अर्थ है?

function chksql(){  
    if (/^\s*(?:delete|drop|truncate|alter)/.test(v)) return false;  
} 

मुझे पता है कि यह नियमित अभिव्यक्ति के साथ मिश्रित है, लेकिन यह समझ में नहीं आता कि इसका क्या अर्थ है।

+0

अधिक जानकारी [यहां] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – aug

+0

कृपया साइट है कि यह करता है लिंक, क्योंकि क्लाइंट पक्ष पर इस छल की जांच करना 'ड्रॉप टेबल' होने का इंतजार है – mkoryak

+0

आह ठीक है, कम से कम यह कोड इसे थोड़ा कठिन बना देगा। आपको इसके बजाय 'ड्रोप टेबल' कहना होगा! just_a_newbie, जो मैं यहां संदर्भित कर रहा हूं वह यह तथ्य है कि यह नियमित अभिव्यक्ति केवल * लोअरकेस * शब्दों से मेल खाती है, लेकिन एसक्यूएल कीवर्ड मामले स्वतंत्र हैं और वास्तव में पारंपरिक रूप से अपरकेस में लिखे गए हैं। –

उत्तर

5

इसे अपनी जाँच का मतलब है v एक स्ट्रिंग है शून्य या अधिक सफेद स्थान के बाद या ड्रॉप या truncate हटाना वर्णों के साथ शुरू होता या

इसलिए यदि v" alter" थे इस होगा बदल है विवरण झूठा है। https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

मैं जोड़ने चाहिए कि क्लाइंट की तरफ हो रहा खिलाफ जाँच एक बहुत बुरा विचार है:

दस्तावेज़ देख सकेंगे। इसे घुमाया जाएगा।

2

इन दिनों नियमित अभिव्यक्तियों का परीक्षण और अन्वेषण करने के लिए कई अच्छे ऑनलाइन टूल हैं।

मुझे पसंद है debuggex.com। यहां बताया गया है कि यह आपके रेगुलर एक्सप्रेशन के लिए प्रदर्शित करता है है:

^\s*(?:delete|drop|truncate|alter) 

Regular expression visualization

Debuggex Demo

कि व्याख्या करने के लिए, आप अभी भी क्या ^ और \s मतलब जानने की तरह होमवर्क का एक सा क्या करने की जरूरत है, लेकिन "रेलरोड आरेख" यह दिखाने में मदद करता है कि नियमित अभिव्यक्ति किस प्रकार परीक्षण कर रही है। यह देखने के लिए लाइनों का पालन करें कि यह क्या मिलान करेगा। आप ऊपर दिए गए लिंक पर परीक्षण तारों में टाइपिंग करने का प्रयास कर सकते हैं यह देखने के लिए कि यह कैसे मेल खाता है (या मेल नहीं खाता)।

एक और अच्छी साइट regex101.com है। यहां your regular expression there है। वे आपको नियमित अभिव्यक्ति की तलाश में एक अंग्रेजी विवरण देते हैं।

इसके अलावा, क्लाइंट पर एसक्यूएल को स्वच्छ करने की कोशिश करने के बारे में हेड mkoryak की सलाह! नियमित अभिव्यक्ति पर

enter image description here

संबंधित मुद्दे