मेरे पास डेटा स्रोत से आने वाला एक लंबा विवरण है। डेटा 5,000 वर्णों से अधिक का हो सकता है। हमारे पास एक छोटी एक पंक्ति विवरण फ़ील्ड है जिसकी आवश्यकता नहीं है। जब इसे नहीं भरा जाता है, तो हम विवरण से पहले 128 वर्णों का उपयोग करते हैं और अंतिम तीन में "..." जोड़ते हैं। तो 125 विवरण हैं और अंतिम तीन "..." हैं।

हम टेक्स्ट टू स्पीच के मुद्दों में भाग रहे हैं जहां कार्यों से जुड़ा "..." गलत कहा गया है। उदाहरण के लिए, एक वाक्यांश "सुंदर घर का स्थान ..." जैसा दिख सकता है।

मैं "..." और उसके बाद "संलग्न" शब्द ढूंढना चाहता हूं (शब्द को रिक्त स्थान के रूप में स्पर्श करके) और इसे "छोटा" या "पूर्ण विवरण देखें" की पंक्तियों के साथ टेक्स्ट के साथ प्रतिस्थापित करना चाहता हूं। .

मुझे प्रतिस्थापन के बारे में पता है लेकिन यह केवल एक कठिन स्ट्रिंग लेता है इसलिए मैं इसके बजाय "..." को प्रतिस्थापित कर रहा हूं और जिस शब्द से यह जुड़ा हुआ है।

अपेक्षित परिणामों के कुछ उदाहरण:

welcome to this beautiful home -> welcome to this beautiful home
welcome to this beautiful h... -> welcome to this beautiful truncated
welcome to this beautiful ... -> welcome to this beautiful truncated

मैं इसे जावास्क्रिप्ट में कैसे पूरा कर सकता हूं?

0
SolidSnake4444 22 अक्टूबर 2018, 21:57

2 जवाब

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

स्ट्रिंग replace नियमित अभिव्यक्तियों पर विचार करता है। तो आप कुछ ऐसा कर सकते हैं:

let strs = [
  'welcome to this beautiful home',
  'welcome to this beautiful h...',
  'welcome to this beautiful ...'
];

strs.forEach(s => console.log(s.replace(/\w*\.{3}/g, 'truncated')));
5
slider 22 अक्टूबर 2018, 19:11

आप रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं (regex101):

const replaceEllipsis = (str) => str.replace(/\S*\.{3}$/, 'truncated');

console.log(replaceEllipsis('welcome to this beautiful home'));  //-> welcome to this beautiful home
console.log(replaceEllipsis('welcome to this beautiful h...'));  //-> welcome to this beautiful truncated
console.log(replaceEllipsis('welcome to this beautiful ...'));  //->  welcome to this beautiful truncated
2
Ori Drori 22 अक्टूबर 2018, 19:06