मैं जावास्क्रिप्ट के उपयोग से पाठ के प्रत्येक अक्षर को कैसे संसाधित कर सकता हूं?


361

मैं एक स्ट्रिंग के प्रत्येक व्यक्तिगत पत्र को सचेत करना चाहूंगा, लेकिन मैं अनिश्चित हूं कि यह कैसे किया जाए।

इसलिए, अगर मेरे पास:

var str = 'This is my string';

मैं टी, एच, आई, एस आदि को अलग से सचेत करने में सक्षम होना चाहता हूं। यह सिर्फ एक विचार की शुरुआत है जिसे मैं काम कर रहा हूं, लेकिन मुझे यह जानना होगा कि प्रत्येक पत्र को अलग से कैसे संसाधित किया जाए।

मैं jQuery का उपयोग करना चाहता हूं और सोच रहा था कि स्ट्रिंग की लंबाई क्या है, यह परीक्षण करने के बाद मुझे विभाजन फ़ंक्शन का उपयोग करने की आवश्यकता हो सकती है।

विचार?


3
शायद आप इस के लिए देख रहे थे: ES6 के रूप में, वहाँ है for(const c of str) { ... }। अधिक विस्तृत और विस्तृत उत्तर नहीं दिया गया है, लेकिन यह काफी नीचे है। PS: @ ARJUN का लिंक मेरे लिए काम नहीं करता है।
मैक्स

जवाबों:


419

यदि अलर्ट का क्रम मायने रखता है, तो इसका उपयोग करें:

for (var i = 0; i < str.length; i++) {
  alert(str.charAt(i));
}

यदि अलर्ट का क्रम मायने नहीं रखता है, तो इसका उपयोग करें:

var i = str.length;
while (i--) {
  alert(str.charAt(i));
}


2
का उपयोग कर []एक विशिष्ट स्थान में चार पाने के लिए आईई <9 में समर्थित नहीं है
vsync

13
जैसा कि दूसरे उत्तर में है, आप [] के स्थान पर str.charAt (i) का उपयोग कर सकते हैं। इसके लिए और अधिक क्यों आप charAt बनाम [] का उपयोग करना चाहिए, देखें string.charAt (x) या स्ट्रिंग [x]
जूलियन सोरो

12
मुझे यह विश्वास करना मुश्किल है कि किसी भी आधुनिक जेएस कम्पाइलर की लंबाई फिर से गणना करेगी यदि स्ट्रिंग को लूप के अंदर संशोधित नहीं किया गया है। हर दूसरी भाषा में मैं खुशी के लिए लूप के टेस्ट क्लॉज में लंबाई की जाँच करता हूँ, यह मानते हुए कि कंपाइलर सबसे अच्छा जानता है और उसी के अनुसार ऑप्टिमाइज़ करेगा।
इकेलन

3
@ डागमार: जावास्क्रिप्ट यूटीएफ -8 का उपयोग नहीं करता है, यह यूटीएफ -16 (या यूसीएस -2, ब्राउज़र पर निर्भर करता है) का उपयोग करता है। हर एक वर्ण को या तो UTF-8 या UTF-16 के रूप में दर्शाया जा सकता है, लेकिन यह समस्या नहीं है। जिन लोगों को समस्या है केवल वे ही हैं जिन्हें दो बाइट्स के बजाय UTF-16 में चार बाइट्स की आवश्यकता होती है। That एक ऐसा चरित्र है जिसे UTF-16 में चार बाइट्स की आवश्यकता होती है। अधिक जानकारी के लिए देखने के लिए महत्वपूर्ण शब्द "सूक्ष्म विमान", "गैर-बीएमपी" और "सरोगेट जोड़ी" हैं।
हिप्पिएट्रेल

1
@ डागमार: जावा और जावास्क्रिप्ट दोनों में यूटीएफ -16 (पूर्व में यूसीएस-) आम है। तीसरा प्रमुख मंच जो इसका उपयोग करता है वह है विंडोज। यूनिक्स, मैकओएस और इंटरनेट प्रोटोकॉल यूटीएफ -8 का उपयोग करते हैं। charAtUCS-2 दिनों से बचा हुआ है जब कोई सरोगेट जोड़े नहीं थे और समस्या को एक नए फ़ंक्शन को संबोधित करने के लिए, codepointAtजावास्क्रिप्ट में जोड़ा गया था जो हमारे अनुकूल कूड़े के ढेर को सही ढंग से संभालता है। मेरा मानना ​​है कि जावा में भी है।
हिप्पिट्रैएल

240

यह शायद हल से ज्यादा है। बस एक और सरल समाधान के साथ योगदान करना चाहते हैं:

var text = 'uololooo';

// With ES6
[...text].forEach(c => console.log(c))

// With the `of` operator
for (const c of text) {
    console.log(c)
}

// With ES5
for (var x = 0, c=''; c = text.charAt(x); x++) { 
    console.log(c); 
}

// ES5 without the for loop:
text.split('').forEach(function(c) {
    console.log(c);
});

4
अंतिम उदाहरण बस हो सकता है[...text].forEach(console.log)
गोविंद राय

10
नहीं, यह नहीं हो सकता। forEach()सूचकांक और सरणी को दूसरे और तीसरे तर्क के रूप में पास करता है। मैं इसके बजाय लॉग नहीं करूंगा ..
श्री गोफरिटो

1
ध्यान दें कि प्रसार ऑपरेटर (पहला उदाहरण) और विभाजन कॉल (अंतिम उदाहरण) दोनों एक नया सरणी बनाएंगे। यह आमतौर पर एक समस्या नहीं होगी, लेकिन बड़े तार या लगातार उपयोग के लिए महंगा हो सकता है।
Randolpho

क्या के बारे मेंfor (let c of [...text]) { console.log(c) }
फ़्लिम

इसके साथ आप स्ट्रिंग से एक नया ऐरे बनाते हैं। मुझे इसका फायदा नहीं दिख रहा है। let c of textपहले से ही काम करता है।
श्री गोफरिटो

73

शुद्ध जावास्क्रिप्ट में एक संभव समाधान:

for (var x = 0; x < str.length; x++)
{
    var c = str.charAt(x);
    alert(c);
}

यह शायद var x = 0 और var c = str.charAt (x) के साथ बेहतर होगा।
रिच

2
इसके अलावा, str.length को एक वैरिएबल में स्टोर किया जाना चाहिए ताकि इसे एक्सेस नहीं करना पड़े।
एली ग्रे

8
@EliGrey क्या यह वास्तव में एक चर में लंबाई डालने के लिए महत्वपूर्ण है? क्या आपके पास बेंचमार्क हैं जब यह कोड की कम लाइनें होने पर बेहतर होगा?
pm_labs

@paul_sns दिलचस्प रूप से, एक मामूली अंतर प्रतीत होता है , कम से कम एज में (एक 10000 तत्व सरणी के लिए 0.7ms अंतर): jsfiddle.net/carcigenicate/v8vvjoc1/1 । शायद एक सही परीक्षण नहीं है, लेकिन यह औसतन 10000 परीक्षणों पर आधारित है।
कारजेनिकेट

1
@paul_sns दिलचस्प रूप से, Chrome ने लगभग 2% समय (~ 5ms बनाम ~ 0.0997ms) में एक ही परीक्षण किया, और दोनों संस्करणों ने एक ही समय दिया, इसलिए ऐसा लगता है कि एज अनुकूलित नहीं है।
कैरिजनेट

69

पाठ के प्रत्येक अक्षर को कैसे संसाधित करें (बेंचमार्क के साथ)

https://jsperf.com/str-for-in-of-foreach-map-2

के लिये

क्लासिक और अब तक सबसे अधिक प्रदर्शन वाला । यदि आप एक प्रदर्शन महत्वपूर्ण एल्गोरिथ्म में इसका उपयोग करने की योजना बना रहे हैं, या इसे ब्राउज़र संस्करणों के साथ अधिकतम संगतता की आवश्यकता है, तो आपको इसके साथ जाना चाहिए।

for (var i = 0; i < str.length; i++) {
  console.info(str[i]);
}

के लिए

के लिए ... पुनरावृत्ति के लिए नया ES6 है अधिकांश आधुनिक ब्राउज़रों द्वारा समर्थित। यह नेत्रहीन अधिक आकर्षक है और टाइपिंग गलतियों के लिए कम संभावना है। यदि आप एक उत्पादन आवेदन में यह एक के लिए जा रहे हैं, तो आप शायद की तरह एक transpiler का उपयोग कर किया जाना चाहिए कोलाहल

let result = '';
for (let letter of str) {
  result += letter;
}

प्रत्येक के लिए

क्रियात्मक दृष्टिकोण। Airbnb ने मंजूरी दे दी । इस तरह से करने का सबसे बड़ा नकारात्मक पहलू यह है कि split(), स्ट्रिंग के प्रत्येक व्यक्ति पत्र को संग्रहीत करने के लिए एक नया सरणी बनाता है।

क्यों? यह हमारे अपरिवर्तनीय नियम को लागू करता है। शुद्ध कार्यों से निपटना जो मूल्यों को लौटाते हैं, साइड इफेक्ट्स की तुलना में तर्क करना आसान है।

// ES6 version.
let result = '';
str.split('').forEach(letter => {
  result += letter;
});

या

var result = '';
str.split('').forEach(function(letter) {
  result += letter;
});

निम्नलिखित वे हैं जिन्हें मैं नापसंद करता हूं।

अंदर के लिए

... के विपरीत, आपको पत्र के बजाय पत्र सूचकांक मिलता है। यह बहुत खराब प्रदर्शन करता है।

var result = '';
for (var letterIndex in str) {
  result += str[letterIndex];
}

नक्शा

फंक्शन अप्रोच, जो अच्छी है। हालाँकि, मानचित्र का उपयोग इसके लिए नहीं किया जाता है। किसी सरणी के अंदर मूल्यों को बदलने की आवश्यकता होने पर इसका उपयोग किया जाना चाहिए, जो कि मामला नहीं है।

// ES6 version.
var result = '';
str.split('').map(letter => {
  result += letter;
});

या

let result = '';
str.split('').map(function(letter) {
  result += letter;
});

1
मेरी मशीन पर क्लासिक forलूप वास्तव में दूसरा सबसे धीमा for...ofथा , जबकि सबसे तेज (लगभग तीन गुना तेज for) था।
जॉन मोंटगोमरी

1
बेंचमार्क कहां है? सबसे तेज उपाय क्या है?
पोइट्रोए

1
@johnywhy दो साल पहले था और लिंक मर चुका है, इसलिए मुझे यकीन नहीं है कि आप मुझसे उम्मीद करते हैं कि मैं उस परिणाम का बचाव करूं जो मुझे वापस मिला। एक नया बेंचमार्क स्थापित करना अब zurfyx के निष्कर्ष से सहमत है, हालांकि forलूप थोड़ा तेज है।
जॉन मोंटगोमरी

1
@ जॉनमोन्गोमेरी मुझे आपसे कुछ भी करने की उम्मीद नहीं है। भविष्य के पाठकों के लिए बस एक नोट कि आपके परिणाम उत्तर से अलग हैं। मैं व्यक्तिगत रूप से जानना चाहूंगा कि आज 2020 तक कौन से परिणाम ब्राउज़रों पर लागू होते हैं, एल्थो '2018 बहुत पहले नहीं था। कौन सा लिंक मर चुका है?
जॉनी

1
@johnywhy सभी वास्तविक परीक्षणों के साथ शीर्ष पर स्थित लिंक मेरे लिए 404 लौटा रहा है।
जॉन मोंटगोमरी

42

सबसे ज्यादा अगर यहां सभी उत्तर गलत नहीं हैं क्योंकि वे यूनिकोड बीएमपी (बेसिक मल्टीलिंगुअल प्लेन) के बाहर तार में जब भी कोई पात्र होगा तो वे टूट जाएंगे । इसका मतलब है कि सभी इमोजी टूट जाएंगे

जावास्क्रिप्ट सभी तारों के लिए UTF- 16 यूनिकोड का उपयोग करता है । UTF-16 में, BMP से परे वर्णों को दो भागों से बाहर किया जाता है, जिसे " सरोगेट जोड़ी " कहा जाता है और यहाँ अधिकांश उत्तर एकल जोड़े के बजाय प्रत्येक जोड़े के प्रत्येक भाग को व्यक्तिगत रूप से संसाधित करेंगे।

कम से कम 2016 के बाद से आधुनिक जावास्क्रिप्ट में एक तरीका नए स्ट्रिंगर का उपयोग करना है । यहाँ उदाहरण (लगभग) सीधे MDN से बाहर है:

var string = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A';

for (var v of string) {
  alert(v);
}
// "A"
// "\uD835\uDC68"
// "B"
// "\uD835\uDC69"
// "C"
// "\uD835\uDC6A"


4
सरोगेट जोड़े को ध्यान में रखते हुए पात्रों में एक स्ट्रिंग को विभाजित करने के लिए एक आधुनिक समाधान के लिए, देखें: stackoverflow.com/a/42596897/527702
hippietrail

20

आप यह कोशिश कर सकते हैं

var arrValues = 'This is my string'.split('');
// Loop over each value in the array.
$.each(arrValues, function (intIndex, objValue) {
    alert(objValue);
})

11
फिर भी एक विकल्प है, लेकिन प्रदर्शन करने वाला नहीं। हर जगह jQuery मत डालो।
cagatay

10

एक और उपाय ...

var strg= 'This is my string';
for(indx in strg){
  alert(strg[indx]);
}

3
यदि आप केवल for..offor (let ch of t) { alert(ch) }
चर

10

जब मुझे लघु कोड या एक-लाइनर लिखने की आवश्यकता होती है, तो मैं इस "हैक" का उपयोग करता हूं:

'Hello World'.replace(/./g, function (char) {
    alert(char);
    return char; // this is optional 
});

यह नई संख्याओं की गणना नहीं करेगा ताकि यह एक अच्छी चीज या बुरी चीज हो सके। यदि आप कौन सी नई सूची शामिल करते हैं, तो प्रतिस्थापित करें: के /./साथ /[\S\s]/। दूसरे वन-लाइनर्स को आप शायद देख सकते हैं .split()जिसमें कई समस्याएं हैं


सबसे बढ़िया उत्तर। यूनिकोड के साथ समस्याओं को ध्यान में रखता है और इसे। () आदि के साथ कार्यात्मक निर्माणों के साथ भी इस्तेमाल किया जा सकता है
rofrol

केवल एक चीज जो मुझे पसंद नहीं है, वह यह है कि जब मैं कॉल करने के लिए दिए गए अतिरिक्त forEachफ़ंक्शन तक पहुंच चाहता हूं, तो भेजेreplace गए Params बनाम । अगर मुझे पता है कि मैं ASCIIing हूं, तो मुझे लगता है कि मेरे पास अभी भी कुछ उपयोग के मामले हैं split। महान जवाब है, हालांकि!
रफिन

इस उत्तर में उन मूल्यों को फिर से
दर्शाने के

1
मैंने सोचा था कि यह यूनिकोड की समस्याओं को ध्यान में नहीं रखेगा जब तक कि इसके uसाथ gध्वज नहीं था? ठीक है बस परीक्षण किया और मैं सही था।
हिप्पिट्रैयल

9

नया JS इसकी अनुमति देता है:

const str = 'This is my string';
Array.from(str).forEach(alert);

8

स्टेटमेंट के लिए ... का उपयोग करना बेहतर होता है, यदि स्ट्रिंग में यूनिकोड वर्ण होते हैं, तो अलग-अलग बाइट के आकार के कारण।

for(var c of "tree 木") { console.log(c); }
//"𝐀A".length === 3

7

संक्षिप्त उत्तर: Array.from(string)आपको वह देगा जो आप शायद चाहते हैं और फिर आप उस पर या जो कुछ भी है, उसे केवल एक सरणी में बदल सकते हैं।

ठीक है चलो इसे इस स्ट्रिंग के साथ आज़माएँ abc|⚫️\n⚪️|👨‍👩‍👧‍👧:।

कोडपॉइंट्स हैं:

97
98
99
124
9899, 65039
10
9898, 65039
124
128104, 8205, 128105, 8205, 128103, 8205, 128103

इसलिए कुछ वर्णों में एक कोडपॉइंट (बाइट) होता है और कुछ में दो या अधिक होते हैं, और अतिरिक्त परीक्षण के लिए एक नई पंक्ति जुड़ती है।

इसलिए परीक्षण के बाद दो तरीके हैं:

  • बाइट प्रति बाइट (कोड पॉइंट प्रति कोड पॉइंट)
  • चरित्र समूह (लेकिन पूरे परिवार इमोजी नहीं)

string = "abc|⚫️\n⚪️|👨‍👩‍👧‍👧"

console.log({ 'string': string }) // abc|⚫️\n⚪️|👨‍👩‍👧‍👧
console.log({ 'string.length': string.length }) // 21

for (let i = 0; i < string.length; i += 1) {
  console.log({ 'string[i]': string[i] }) // byte per byte
  console.log({ 'string.charAt(i)': string.charAt(i) }) // byte per byte
}

for (let char of string) {
  console.log({ 'for char of string': char }) // character groups
}

for (let char in string) {
  console.log({ 'for char in string': char }) // index of byte per byte
}

string.replace(/./g, (char) => {
  console.log({ 'string.replace(/./g, ...)': char }) // byte per byte
});

string.replace(/[\S\s]/g, (char) => {
  console.log({ 'string.replace(/[\S\s]/g, ...)': char }) // byte per byte
});

[...string].forEach((char) => {
  console.log({ "[...string].forEach": char }) // character groups
})

string.split('').forEach((char) => {
  console.log({ "string.split('').forEach": char }) // byte per byte
})

Array.from(string).forEach((char) => {
  console.log({ "Array.from(string).forEach": char }) // character groups
})

Array.prototype.map.call(string, (char) => {
  console.log({ "Array.prototype.map.call(string, ...)": char }) // byte per byte
})

var regexp = /(?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g

string.replace(regexp, (char) => {
  console.log({ 'str.replace(regexp, ...)': char }) // character groups
});


7

अब आप एक स्ट्रिंग में निहित व्यक्तिगत यूनिकोड कोड बिंदुओं पर उपयोग कर सकते हैं String.prototype[@@iterator], जो प्रसिद्ध प्रतीक प्रकार का मान लौटाता है Symbol.iterator- सरणी-जैसी वस्तुओं के लिए डिफ़ॉल्ट पुनरावृत्ति ( Stringइस मामले में)।

उदाहरण कोड:

const str = 'The quick red 🦊 jumped over the lazy 🐶! 太棒了!';

let iterator = str[Symbol.iterator]();
let theChar = iterator.next();

while(!theChar.done) {
  console.log(theChar.value);
  theChar = iterator.next();
}

// logs every unicode character as expected into the console.

यह यूनिकोड वर्णों जैसे इमोजी या गैर-रोमन वर्णों के साथ काम करता है जो विरासत निर्माणों की यात्रा करेंगे।

संदर्भ: MDN लिंक String.prototype @@ iterator से


2
ध्यान दें कि आप इसे एक छोटे तरीके से for ... ofलूप के साथ-साथ स्ट्रिंग पर भी कर सकते हैं - यानी पुनरावृति तक पहुँचने के लिए सिंटैक्स चीनी।
आदित्य सांसद

6

अब आप कीवर्ड में उपयोग कर सकते हैं ।

    var s = 'Alien';
    for (var c in s) alert(s[c]);


प्रयोग में है बुरा अभ्यास और भयानक जब अनफ़िल्टर्ड मैं दृढ़ता से इस के खिलाफ सलाह
डाउनग्रेड

4
@Downgoat क्यों? इसमें बुरा क्या है? मेरा मतलब है कि अगर मैं ऐसी स्थिति में हूं जहां मुझे पता है कि 'इन' मेरे जावास्क्रिप्ट इंजन द्वारा समर्थित है, और यह कि मेरा कोड किसी अन्य इंजन में अपना रास्ता नहीं खोजेगा ... तो इसका उपयोग क्यों नहीं करते?
TKoL

@TKoL देखें इस
एलन

@ एलन inभाषा का एक वैध हिस्सा है। चीजों का उचित उपयोग करें। आपका लेख बताता है कि inअल्फा कुंजियों को संख्यात्मक कुंजियों के समान व्याख्या करता है। इसलिए? शायद यही आप चाहते हैं। यह भी कहा जा सकता है कि अन्य तरीके गलत तरीके से अल्फा कीज़ को अनदेखा करते हैं। Imo, ofसही व्यवहार है। जेएस सरणियों में, अल्फा कुंजी के बिना तत्वों में अभी भी चाबियाँ हैं: संख्यात्मक। मेरे कंसोल में, जेएस "सही ढंग से" अल्फा कुंजी को संख्यात्मक कुंजियों के समान मानते हैं:>const arr = ['a', 'b'] >arr.test = 'hello' >arr 0: "a" 1: "b" test: "hello" length: 2
जॉनी

5

आप इस तरह के व्यक्तिगत पात्रों की एक सरणी प्राप्त कर सकते हैं

var test = "test string",
    characters = test.split('');

और फिर नियमित जावास्क्रिप्ट का उपयोग करके लूप, या फिर आप jQuery का उपयोग करके स्ट्रिंग के पात्रों पर पुनरावृति कर सकते हैं

var test = "test string";

$(test.split('')).each(function (index,character) {
    alert(character);
});

5

आप इस स्ट्रिंग को वर्णों की एक सरणी में बदल सकते हैं split(), फिर इसके माध्यम से पुनरावृति कर सकते हैं।

const str = "javascript";
const strArray = str.split('');

strArray.map(s => console.log(s));


स्पष्ट रूप से यह यूनिकोड वर्णों और ग्राफिक प्रतीकों के साथ विफल होता है।
जॉनी क्यों

4

यदि आप किसी वर्ण स्तर पर पाठ में परिवर्तन करना चाहते हैं, और अंत में रूपांतरित पाठ प्राप्त करना चाहते हैं, तो आप इस तरह करेंगे:

var value = "alma";
var new_value = value.split("").map(function(x) { return x+"E" }).join("")

तो कदम:

  • स्ट्रिंग को वर्णों की एक सरणी (सूची) में विभाजित करें
  • प्रत्येक चरित्र को एक फ़नकार के माध्यम से मैप करें
  • परिणामी स्ट्रिंग में एक साथ वर्णों के परिणामी सरणी को मिलाएं

0

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

Array.prototype.map.call('This is my string', (c) => c+c)

जाहिर है, c + c जो कुछ भी आप c के साथ करना चाहते हैं उसका प्रतिनिधित्व करता है।

यह लौटता है

["TT", "hh", "ii", "ss", " ", "ii", "ss", " ", "mm", "yy", " ", "ss", "tt", "rr", "ii", "nn", "gg"]


संभवतः:[...'This is my string'].map((c)=>c+c)
एलन

0

यह पुराने ब्राउज़रों और UTF-16 वर्णों जैसे browsers के साथ काम करना चाहिए ।

यह सबसे अधिक संगत समाधान होना चाहिए। हालांकि, यह एक forलूप होगा की तुलना में कम प्रदर्शन है।

मैंने regexpu का उपयोग करके नियमित अभिव्यक्ति उत्पन्न की

var str = 'My String 💩 ';
var regEx = /(?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g


str.replace(regEx, function (char) {
    console.log(char)
});

उम्मीद है की यह मदद करेगा!


"कम सुगंधित" से आपका क्या मतलब है? मुझे लगता है कि आपका मतलब "धीमा" है क्योंकि यह आवश्यकता के अधिक अनुरूप है और यह अच्छा प्रदर्शन करता है।
हिप्पिट्रैइल

-1

आप एकल वर्णों के साथ str.charAt(index)या तक पहुँच सकते हैं str[index]। लेकिन बाद का रास्ता ईसीएमएस्क्रिप्ट का हिस्सा नहीं है, इसलिए आप बेहतर पूर्व के साथ जाएं।


मैं उससे दूर रहूँगा। दुर्भाग्य से यह IE के सभी संस्करणों में काम नहीं करता है। मुझ पर विश्वास करो। मैंने इसे कठिन तरीके से सीखा।
Xavi

3
यह ECMAScript का हिस्सा है, लेकिन केवल नव-रिलीज़ 5 वें संस्करण में, 3 जी नहीं।
kangax

-1

यदि आप प्रत्येक वर्ण को चेतन करना चाहते हैं, तो आपको इसे स्पैन तत्व में लपेटने की आवश्यकता हो सकती है;

var $demoText = $("#demo-text");
$demoText.html( $demoText.html().replace(/./g, "<span>$&amp;</span>").replace(/\s/g, " "));

मुझे लगता है कि यह करने का सबसे अच्छा तरीका है, फिर स्पैन की प्रक्रिया करें। (ट्विनमैक्स के साथ उदाहरण के लिए)

TweenMax.staggerFromTo ($ DemoText.find ("span"), 0.2, {autoAlpha: 0}, {autoAlpha: 1}, 0.1);


-1

इस कोड को आज़माएं

    function myFunction() {
    var text =(document.getElementById("htext").value); 
    var meow = " <p> <,> </p>";
    var i;


    for (i = 0; i < 9000; i++) {

        text+=text[i] ;



    }

    document.getElementById("demo2").innerHTML = text;

}
</script>
<p>Enter your text: <input type="text" id="htext"/>

    <button onclick="myFunction();">click on me</button>
</p>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.