2011-04-15 15 views
5

यहाँ कुछ मैं NSString में प्रयोग किया जाता है ...क्या जावास्क्रिप्ट में% d की तरह कुछ है?

[NSString stringWithFormat:@"This is a digit %d", 10]; 

10 मूल्य% d के लिए जाना जाएगा ...., और स्ट्रिंग हो जाएगा "यह एक अंकों 10", वहाँ किसी भी इसी तरह की बात है जावास्क्रिप्ट में? धन्यवाद ... इसके अलावा, मैं जानना चाहता हूं, यह कॉल क्या है ??

+2

इसे [स्पिंटफ] कहा जाता है (http://www.diveintojavascript.com/projects/javascript-sprintf) – Khez

+1

[जावास्क्रिप्ट printf/string.format] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/610406/ जावास्क्रिप्ट-printf-स्ट्रिंग प्रारूप) – codymanix

उत्तर

4

कोई अंतर्निहित स्ट्रिंग स्वरूपण नहीं है, लेकिन आप ऐसा करने के लिए जावास्क्रिप्ट लाइब्रेरी का उपयोग कर सकते हैं: sprintf()

2

एक ही प्रभाव को प्राप्त करने के लिए, तुम सिर्फ कह सकते हैं:

"This is a digit " + 10; 

वैकल्पिक रूप से, अगर आप स्वरूपण वास्तविक स्ट्रिंग की जरूरत है आप javascript-printf-string-format पर एक नजर है कर सकते हैं।

1

जावास्क्रिप्ट में ऐसी कोई चीज़ नहीं है लेकिन आप your own printf बना सकते हैं।

1

यह नियमित अभिव्यक्तियों का उपयोग करके संभव है।

http://www.regular-expressions.info/javascript.html यह विषय के लिए एक काफी अच्छा वेबसाइट है अनुभाग 'रिप्लेसमेंट पाठ सिंटेक्स' का संदर्भ लें।

4

आप तार आसानी से जावास्क्रिप्ट में जोड़ सकते हैं:

var str = "This is a digit " + 10; 
0

bob.js JS framework ऐसा करने की अनुमति देता है:

var sFormat = "My name is {0} and I am version {1}.0."; 
var result = bob.string.formatString(sFormat, "Bob", 1); 
console.log(result); 
//output: 
//========== 
// My name is Bob and I am version 1.0. 

- Tengiz

0

यहाँ एक सरल sprintf कार्यान्वयन मैंने पाया है। यह एक कोणीय फिल्टर के रूप में बनाया गया है लेकिन तर्क को निश्चित रूप से बाहर निकाला जा सकता है।

https://gist.github.com/jakobloekke/7303217

angular.module('filters') 
    .filter('sprintf', function() { 

    function parse(str) { 
     var args = [].slice.call(arguments, 1), 
      i = 0; 

     return str.replace(/%d/g, function() { 
      return args[i++]; 
     }); 
    } 

    return function() { 
     return parse(
      Array.prototype.slice.call(arguments, 0,1)[0], 
      Array.prototype.slice.call(arguments, 1) 
     ); 
    }; 
}); 

उपयोग:

$filter('sprintf')(
    "Hello %d. It's %d nice to see you!", 
    "World", 
    "very" 
); 

या

scope.values = ["World", "very"]; 

<p ng-bind="message | sprintf: values"></p> 
0

आजकल, हम टेम्पलेट तार, जो एक बहुत ही इसी तरह की बात पूरा किया है। वे इस तरह काम करते हैं:

var message = "Hello world" 
console.log(`This is my message: ${message}. Don't you love it?`) 

टेम्पलेट अक्षरों को परिभाषित करके और उन्हें {var} का उपयोग करके चर शामिल करने के द्वारा पहचाना जाता है।

संबंधित मुद्दे