उत्तर
आप can useRegExp#exec
विधि कई बार:
var regex = /a/g;
var str = "abcdab";
var result = [];
var match;
while (match = regex.exec(str))
result.push(match.index);
alert(result); // => [0, 4]
Helper function: कार्य करने के लिए
var result = [];
"abcdab".replace(/(a)/g, function (a, b, index) {
result.push(index);
});
result; // [0, 4]
तर्क हैं:
function getMatchIndices(regex, str) {
var result = [];
var match;
regex = new RegExp(regex);
while (match = regex.exec(str))
result.push(match.index);
return result;
}
alert(getMatchIndices(/a/g, "abcdab"));
आप इस्तेमाल कर सकते हैं/replace function दुरुपयोग निम्नानुसार है:
function replacer(match, p1, p2, p3, offset, string) {
// p1 is nondigits, p2 digits, and p3 non-alphanumerics
return [p1, p2, p3].join(' - ');
}
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
console.log(newString); // abc - 12345 - #$*%
+1। – jfriend00
आप इस तरह सभी मैच अनुक्रमित प्राप्त कर सकते हैं:
var str = "abcdab";
var re = /a/g;
var matches;
var indexes = [];
while (matches = re.exec(str)) {
indexes.push(matches.index);
}
// indexes here contains all the matching index values
डेमो यहाँ कार्य करना: http://jsfiddle.net/jfriend00/r6JTJ/
डाउनवोट क्यों? – jfriend00
एक गैर regex किस्म:
var str = "abcdabcdabcd",
char = 'a',
curr = 0,
positions = [];
while (str.length > curr) {
if (str[curr] == char) {
positions.push(curr);
}
curr++;
}
console.log(positions);
आप केवल सरल वर्ण, या चरित्र दृश्यों को खोजने के लिए चाहते हैं, आप indexOf
[MDN] उपयोग कर सकते हैं:
var haystack = "abcdab",
needle = "a"
index = -1,
result = [];
while((index = haystack.indexOf(needle, index + 1)) > -1) {
result.push(index);
}
यदि कोई केवल एक ही चरित्र की घटनाओं की तलाश में है, तो यह करने का एक बहुत ही आसान तरीका होगा और शायद रेगेक्स से बेहतर प्रदर्शन करेगा। – jfriend00
- 1. <% $, <% @, <% =, <% # ... सौदा क्या है?
- 2. PHP क्या <<< मतलब है?
- 3. 'ऑपरेटर <<' के लिए 'std :: cout <<' में अस्पष्ट अधिभार <<
- 4. PHP में <<< ईओडी का उपयोग क्या है?
- 5. PHP में, "<<<" क्या दर्शाता है?
- 6. << पायथन में क्या करता है?
- 7. cout << स्ट्रिंगस्ट्रीम
- 8. "<<<" ऑपरेटर का नाम क्या है?
- 9. <: <, <% <, =: = कंपाइलर में काम का स्केल कार्यान्वयन वास्तव में कैसे करता है?
- 10. >>>>,> |, ||, | <, <, <<
- 11. अंतर << a_value
- 12. कैसे बचें << - असाइन
- 13. PHP व्यंजक <<< EOB
- 14. कक्षा << आत्म मतलब क्या है?
- 15. पीएचपी: <<< ob_start बनाम
- 16. "ऑपरेटर <<" क्या कहा जाता है?
- 17. ओवरलोडिंग ऑपरेटर << - सी ++
- 18. एएसपी.Net में, <% = और <% #
- 19. ईजेएस: <% = बनाम <% -
- 20. प्रश्न <<
- 21. <? के बजाय php <?
- 22. Enumerable.ToList <>() <>
- 23. << ऑपरेटर और प्रत्यावर्तन
- 24. ऑपरेटर << ओवरलोडिंग ओस्ट्रीम
- 25. << से भिन्न कैसे है?
- 26. DOMDocument को <as & lt
- 27. <%# %> बनाम <%= %>
- 28. तरह</p> <pre><code><input id="picker" type="date"> </code></pre> <p>क्रोम
- 29. एएसपीएक्स में <%: और <% = और <% # के बीच क्या अंतर है?
- 30. एक्सएमएल में <ArrayOf> की सूची <<
मैं रेगुलर एक्सप्रेशन कार्यकारी विधि की तरह। '.replace()' फ़ंक्शन के चालाक उपयोग के लिए – kennebec