2010-10-20 10 views
38

PHP'de strpos benzeri bir JavaScript veya jQuery eşdeğer bir işlevi var mı?jQuery veya PHP strpos işlevinin JavaScript eşdeğeri, bir sayfada dizgeyi bulmak için

Sayfadaki bir öğenin içindeki bir dizeyi bulmak istiyorum. Benim aradığım dizesidir:

td class="SeparateColumn" 

ı bulmak için bu gibi çalıştırabilirsiniz şey istiyorum: Ben bir dize bir karakter içerip içermediğini kontrol demek kabul

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

Düz Javascript'te zaten var olanı kullanıyor musunuz? – delnan

+0

Anladığım kadarıyla, bir sayfanın tamamı için bir dizgeyi aramak ister misiniz? – JAL

+0

jQuery'de kullanmaya çalıştığımda "indexOf bir işlev değil" i javascript ile yapmanın başka bir yolu var mı? ? ? YARDIM ET! –

cevap

58

ve dizedeki konum - JS'deki bir dizenin indexOf() yöntemini kullanmak istersiniz. İşte relevant docs.


Tamam, bu yüzden tüm sayfayı aramak istiyorsunuz! :contains() seçicisi bunu yapacaktır. :contains için the jQuery docs'a bakın.

, sayfa her eleman arama geri jQuery unsurları alırsanız

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

kullanmak için daha sonra arama başarılıydı. düz eski JavaScript iyi yapacak .indexof() yöntemi kullanılarak, - bunun için Örneğin, bu çok sayfa

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

Elbette, bu örnekte 'horsey rodeo' kelimesini içerme eylemi son parçayı teknik olarak yanlış hale getiriyor, ancak biz bu yıkıma girmeyeceğiz. – JAL

+0

iyi geliyor; öğesinin bu sayfadaki belirli bir dizgeye sahip olup olmadığını nasıl kontrol edebilirim? – Tom

+0

@Tom 'if ($ ('td.SeparateColumn: içerir (" string ")')) {/ * bir şeyler yap * /} 'yapmalı. – JAL

39

on jquery gerekmez. Gerçekten PHP'nin strpos() için tam sözdizimi maçı istiyorsanız

Ancak böyle bir şey yapacağını:

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

Not: Burada alınan bu işlevi: http://phpjs.org/functions/strpos:545

JSFiddle

+0

IE8 ve aşağısı 'indexOf' desteklemiyor. – MacMac

+13

@YouBook, Array.indexOf() değil, eski sürüm IE tarafından desteklenmeyen String.indexOf() değil. – JAL

İlgili konular