2017-09-15 21 views
7

मैं झूठी वापस जाने के लिए अगर विशेष वर्ण पाए जाते हैं एक नियमित अभिव्यक्ति है एकल या डबल उद्धरण खोजने के लिए। मैं इसे करने के लिए इसे संशोधित करने की कोशिश कर रहा हूं यदि कोई एकल या डबल उद्धरण मिलता है। यह एक बार है कि regexr.com मदद नहीं कर रहा है।जावास्क्रिप्ट नियमित अभिव्यक्ति काम नहीं कर रहा

यहाँ मेरी अभिव्यक्ति है कि विशेष वर्णों के लिए काम करता है:

^(?=.*?[A-Z]{2})((?!\'|\").)*$ 
:

^(?=.*?[A-Z]{2})((?!'|").)*$ 

मैं भी उन्हें भागने की कोशिश की:

^(?=.*?[A-Z]{2})((?!!|@|$|%|\^|&|\*)).)*$ 

यहाँ सिंगल और डबल उद्धरण के लिए अपने रेगुलर एक्सप्रेशन है

कृपया मदद! मैंने इस पर बहुत अधिक समय बर्बाद कर दिया है और जल्दी से इसे समझ नहीं सकता है।

var isValidText = function (val) { 
    var rx = new RegExp(\^(?=.*?[A-Z]{2})((?!!|@|$|%||^|&||*)).)*$\); 
    var result = rx.text(val); 
    return result; 
} 

सरल इनपुट:

हम एक पार्टी और मेरे घर इस सप्ताह के अंत में समस्या आ रही

मैं एक विधि है। कृपया जितनी चाहें उतने मित्रों को लाएं; जितना ज़्यादा उतना अच्छा।

यह पैराग्राफ अमान्य होना चाहिए जैसे ही हम एक ही उद्धरण प्राप्त करते हैं।

+0

क्षमा करें, कैसे पहली regex काम करता है? – revo

+1

पहले एक एक मान्य रेगुलर एक्सप्रेशन से नहीं है, और यही कारण है कि '[^" '] 'के लिए आप? –

+3

काम नहीं कर रहा आप कृपया व्याख्या कर सकते हैं क्यों तुम अग्रदर्शी उपयोग कर रहे हैं? आप क्या लिखा है, यह के रूप में' सरल होना चाहिए/'| "/। test (str)', मुझे क्या याद आ रही है? –

उत्तर

6

यहाँ lookaround के लिए कोई ज़रूरत नहीं है, और जब से तुम केवल एकल वर्ण मिलान कर रहे हैं तो आप बस एक चरित्र | के बजाय सेट का उपयोग कर सकते हैं।

.*[[email protected]$%^&*'"].*

+0

यह बहुत अच्छा काम करता है! लेकिन मुझे यह उल्लेख करना होगा कि एक बार जब मैंने^हटा दिया तो एलेक्स ब्लेक्स की टिप्पणी भी काम करती थी। धन्यवाद। – Patricia

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