संक्षिप्त उत्तर: उपयोग करें m = s.match(/[^ ,]/g);
आपका आरई अपेक्षा के अनुरूप काम नहीं करता है, क्योंकि अंतिम समूह सबसे हालिया मैच (=
c) से मेल खाता है । यदि आप छोड़ देते हैं
{1,}$, तो लौटा हुआ मैच होगा
" a , b ", "a", "b"। संक्षेप में,
जब तक आप
globalध्वज का उपयोग
नहीं करते
तब तक आपका RegExp निर्दिष्ट समूहों के रूप में अधिक से अधिक मिलान करता है
/g। इस मामले में, लौटी सूची सभी मिलान किए गए सबस्ट्रिंग के संदर्भ रखती है।
अपना प्रभाव प्राप्त करने के लिए, उपयोग करें:
m = s.replace(/\s*(,|^|$)\s*/g, "$1");
यह हर अल्पविराम ( ,), शुरुआत ( ^) और अंत ( $), व्हाट्सएप से घिरा हुआ है, मूल चरित्र ( comma, या कुछ नहीं) द्वारा प्रतिस्थापित करता है ।
यदि आप एक सरणी प्राप्त करना चाहते हैं, तो उपयोग करें:
m = s.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/);
यह आरई स्ट्रिंग को ट्रिम कर देता है (शुरुआत और अंत में सभी व्हाट्सएप को हटा देता है, फिर स्ट्रिंग को विभाजित करता है <any whitespace>,<any whitespace>। ध्यान दें कि सफेद-अंतरिक्ष वर्णों में नई वर्णमालाएं और टैब भी शामिल हैं। यदि आप रिक्त स्थान पर चिपके रहना चाहते हैं, तो इसके बजाय एक स्थान ( ) का उपयोग करें ) \s।
{0,}रूप में ही है*।