2010-10-20 8 views
38

क्या जावास्क्रिप्ट या jQuery में strpos के समान PHP में समकक्ष फ़ंक्शन है?किसी पृष्ठ पर स्ट्रिंग को खोजने के लिए PHP स्ट्रॉप्स फ़ंक्शन के jQuery या जावास्क्रिप्ट समतुल्य

मैं किसी पृष्ठ पर किसी तत्व के अंदर एक स्ट्रिंग का पता लगाना चाहता हूं। स्ट्रिंग मैं तलाश कर रहा हूँ है:

td class="SeparateColumn" 

मैं कुछ मैं कहाँ खोजने के लिए इस तरह चला सकते हैं करना चाहते हैं:,

if $("anystring") 
    then do it 
+1

आप सादे जावास्क्रिप्ट में पहले से मौजूद किसी का उपयोग करते हैं? – delnan

+0

मैं देखता हूं, तो आप एक स्ट्रिंग के लिए एक संपूर्ण पृष्ठ खोजना चाहते हैं? – JAL

+0

जब मैं jQuery में उपयोग करने का प्रयास करता हूं तो मुझे "indexOf फ़ंक्शन नहीं है" जावास्क्रिप्ट के साथ ऐसा करने का कोई और तरीका है? ? ? मदद! –

उत्तर

58

मुझे लगता है तुम्हारा मतलब जाँच एक स्ट्रिंग एक वर्ण है कि क्या और स्ट्रिंग में स्थिति - आप जेएस में स्ट्रिंग के indexOf() विधि का उपयोग करना चाहते हैं। यहां relevant docs हैं।


ठीक है, तो आप पूरे पृष्ठ को खोजना चाहते हैं! :contains() चयनकर्ता ऐसा करेगा। :contains के लिए the jQuery docs देखें।

पेज में हर तत्व खोजने के लिए,

var has_string = $('*:contains("search text")'); 

का उपयोग आप jQuery तत्वों वापस पाने, तो खोज एक सफलता थी। सादे पुराने जावास्क्रिप्ट ठीक करना होगा, .indexof() विधि का उपयोग कर - उदाहरण के लिए, यह बहुत ही पेज

var has_string=$('*:contains("Alex JL")').length 
//has_string is 18 
var has_string=$('*:contains("horsey rodeo")').length 
//has_string if 0. So, you could an `if` on this and it would work as expected. 
+2

बेशक, उदाहरण में 'हॉर्स रोडियो' को शामिल करने का कार्य आखिरी हिस्सा तकनीकी रूप से झूठा बनाता है, लेकिन हम उस conundrum में नहीं मिलेगा। – JAL

+0

अच्छा लगता है; मैं कैसे जांच सकता हूं कि तत्व इस पृष्ठ पर एक विशिष्ट स्ट्रिंग है – Tom

+0

@Tom 'if ($ ('td.SeparateColumn: इसमें (" स्ट्रिंग ") है)) {/ * कुछ करें * /} 'इसे करना चाहिए। – JAL

39

पर आप के लिए यह jQuery जरूरत नहीं है।

लेकिन अगर तुम सच में PHP के strpos() के लिए सटीक वाक्य रचना मैच चाहते हैं, कुछ इस तरह यह करना होगा:

function strpos (haystack, needle, offset) { 
    var i = (haystack+'').indexOf(needle, (offset || 0)); 
    return i === -1 ? false : i; 
} 

नोट: यह समारोह यहां से ली गई है: http://phpjs.org/functions/strpos:545

JSFiddle

+0

IE8 और नीचे 'indexOf' का समर्थन नहीं करते हैं। – MacMac

+13

@YouBook जो Array.indexOf() है, String.indexOf() नहीं है, जो IE के पुराने संस्करणों द्वारा समर्थित नहीं है। – JAL

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