मेरे पास यह रेगेक्स फ़ंक्शन है:
^[a-zA-Z](?!.*[.'-]{2})[A-Za-z0-9 ]*(?:[.'-][A-Za-z0-9 ]*){0,2}$
और मूल रूप से यह केवल अक्षरों/संख्याओं और इन विशेष प्रतीकों को अनुमति देने वाला है: .'-
शब्द के अंदर। यह यह भी पता लगाता है कि क्या कोई लगातार विशेष प्रतीक हैं और यदि उनमें से कुल >2
हैं। उदाहरण के लिए:
.asd
(गलत)
a.a.a.a
(गलत)
a.a.a
(ठीक है)
blabla.
(गलत)
bla.-bla
(गलत)
bla-bla
(ठीक है)
इसे विशेष वर्ण को शब्द के आगे और पीछे नहीं होने देना चाहिए। मैं सब कुछ करने में कामयाब रहा लेकिन शब्द के अंत में विशेष चरित्र नहीं। मुझे नहीं पता कि इसे काम करने के लिए $
कहां रखा जाए। क्या तुम्हारे पास कोई सुझाव है? शायद इस सूत्र को सरल बनाया जा सकता है?
धन्यवाद!
1 उत्तर
आपके रेगेक्स के दूसरे भाग में, जहां आप किसी विशेष वर्ण से मेल खाते हैं, आपको कम से कम एक "सामान्य" वर्ण का पालन करना चाहिए। तो *
को इसमें बदलें:
(?:[.'-][A-Za-z0-9 ]*)
... से +
:
(?:[.'-][A-Za-z0-9 ]+)