इनपुट

'/api/v1' or '/_api/v1'

उत्पादन

'/'

मैं इसे इस तरह कर सकता था

const output = input.replace('/api/v1', '/').replace('/_api/v1', '/');

लेकिन बस उत्सुक हैं कि हम प्रतिस्थापन में रेगेक्स विधि का लाभ कैसे उठा सकते हैं, और इसे एक ही शॉट में कैसे कर सकते हैं?

1
Abhijeet 29 मई 2017, 08:35

3 जवाब

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

? मेटा-कैरेक्टर का उपयोग करके बस अंडरस्कोर को वैकल्पिक बनाएं।

// using the constructor here to avoid all that forward-slash escaping
const rx = new RegExp('/_?api/v1')
const inputs = ['/api/v1', '/_api/v1']

inputs.forEach(input => {
  console.info(input, ' becomes ', input.replace(rx, '/'))
})
2
Phil 29 मई 2017, 08:44

इस पैटर्न को आजमाएं \/_?api\/v\d+

  1. _? _ के साथ या बिना शर्त है या है
  2. और d+ के साथ प्रयोग करें यह v1&v2 के अंत में अंक से मेल खाएगा

डेमो रेगेक्स और स्पष्टीकरण

var input1 = '/api/v1'
var input2 = '/_api/v1'

console.log(input1.replace(/\/_?api\/v\d+/g, '/'))
console.log(input2.replace(/\/_?api\/v\d+/g, '/'))
0
prasanth 29 मई 2017, 08:44

आप इसे एक साधारण या शर्त के साथ कर सकते हैं |:

रेगुलर एक्सप्रेशन: /api/v1|/_api/v1

और जावास्क्रिप्ट के साथ:

const output = input.replace(/\/api\/v1|\/_api\/v1/g, '/');
0
Guybrush 29 मई 2017, 08:53