मैं d3 और यह पंक्तियाँ वे ईवेंट के नाम को शब्दों से विभाजित करने का प्रयास करते हैं। लेकिन वे ^| in . का उपयोग क्यों कर रहे हैं? यह ^|\s+ रेगेक्स? जब string.trim().split(/^|\s+/) और string.trim().split(/\s+/) क्या अंतर परिणाम देते हैं?

2
Dmitry Chebakov 11 फरवरी 2019, 16:54

1 उत्तर

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

यदि स्ट्रिंग व्हॉट्सएप से शुरू नहीं होती है, तो split व्यवहार में कोई अंतर नहीं है:

console.log("a b c".split(/\s+/))
// => ["a", "b", "c"]
console.log("a b c".split(/^|\s+/))
// => ["a", "b", "c"]

यदि प्रारंभ में रिक्त स्थान हैं, तो आउटपुट भिन्न होता है:

console.log(" a b c".split(/^|\s+/))
// => [" a", "b", "c"]
console.log(" a b c".split(/\s+/))
// => ["", "a", "b", "c"]

कारण यह है कि एक खाली स्ट्रिंग से मेल खाने से जेएस रेगेक्स इंजन अगले चार को छोड़ देता है। इसका वर्णन मेरे इस उत्तर में किया गया है। तो, पहली सरणी आइटम में पहली जगह शामिल करने के लिए इसे "चाल" माना जा सकता है।

4
Wiktor Stribiżew 11 फरवरी 2019, 17:59