मेरे पास यह रेगेक्स फ़ंक्शन है:

^[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 (ठीक है)

इसे विशेष वर्ण को शब्द के आगे और पीछे नहीं होने देना चाहिए। मैं सब कुछ करने में कामयाब रहा लेकिन शब्द के अंत में विशेष चरित्र नहीं। मुझे नहीं पता कि इसे काम करने के लिए $ कहां रखा जाए। क्या तुम्हारे पास कोई सुझाव है? शायद इस सूत्र को सरल बनाया जा सकता है?

धन्यवाद!

0
f33tl0v3r 24 नवम्बर 2020, 14:35

1 उत्तर

सबसे बढ़िया उत्तर

आपके रेगेक्स के दूसरे भाग में, जहां आप किसी विशेष वर्ण से मेल खाते हैं, आपको कम से कम एक "सामान्य" वर्ण का पालन करना चाहिए। तो * को इसमें बदलें:

(?:[.'-][A-Za-z0-9 ]*)

... से +:

(?:[.'-][A-Za-z0-9 ]+)
1
trincot 24 नवम्बर 2020, 15:19