2010-04-29 20 views
9

Podając ciąg znaków A, w jaki sposób określić, czy ten ciąg zawiera podciąg "video/x-flv"?Jak ustalić, czy ciąg zawiera konkretny podłańcuch

+0

Nadal wiele nieakceptowanych odpowiedzi, widzę. – spender

+0

@spender - yep - czasami po prostu nie mam czasu, aby je wszystkie sprawdzić. Sorry =) – Rella

+0

Zastanawiam się, kiedy ludzie przestaną zadawać pytania, na które można odpowiedzieć przez proste spojrzenie na dokumentację ... –

Odpowiedz

22
A.indexOf("video/x-flv") >= 0 
+3

Proszę nie zacinaj swoich operatorów razem z operandami bez białych spacji. 'A.indexOf (" video/x-flv ")> = 0' jest znacznie bardziej czytelne (i pasuje do wytycznych stylu). –

+0

OK. Tak przyzwyczaiłem się do IDE robiąc dla mnie, że stałem się leniwy;) – spender

-1

if (myString.indexof ("A",, 0)> 0)

+0

To całkiem niepoprawne. Być może nadal działa, ale kto chciałby czegoś, co działa tylko czasami? –

+1

Jedyne, co widzę źle, to to, że zapomniałem '> =' i po prostu zrobiłem '>. Co jeszcze jest w tym złego? Byłoby znacznie skuteczniejszej krytyki, gdybyś wyjaśnił, dlaczego uważasz, że to zło, zamiast twierdzić, że tak jest. Dzięki – invertedSpear

+0

@ mini-me - formatowanie nie ma znaczenia w tej sytuacji, a przykładowy kod jest tak samo użyteczny, jak użycie rzeczywistych wartości z pytania, czasami może być nawet bardziej użyteczny, ponieważ usuwa szum.Nadal nie mam odpowiedzi na pytanie, dlaczego jest to niepoprawne, lub wyjaśnienie, dlaczego "działałoby to czasami", jak to określił bug-a-lot. Mogę zaakceptować, że jest to złe, jeśli tak jest, ale nie pomaga nikomu po prostu powiedzieć "źle" bez konstruktywnej krytyki. – invertedSpear

0
if (someString.search('\\[someValueInSquareBracketsForExmaple\\]') == -1) Alert.show('String not found!') 
    else Alert.show('String found!') 

Możesz też po prostu użyć ciągu, który musisz znaleźć, "wyświetlić" wszystkie znaki usługi RegExp, jeśli istnieją, lub użyć wzorca RegExp.

Powodzenia!

-3

tutaj jest funkcją zastąpić jeden cytat z ciągiem ..

var str:String = "hello'welcome'"; 

str = findAndReplace(str,"'","&quote;"); 
trace(str); 

str = findAndReplace(str,"&quote;","'"); 
trace(str); 

function findAndReplace(haystack:String, needle:String, replace:String) 
     { 
      while(haystack.indexOf(needle)>=0) { 
       haystack = haystack.replace(needle,replace); 
      } 
      return haystack; 
     } 

Inna prosta metoda jest

var theContent:String = "&quote; I hate &quote; when content has ' words like, ' in i" 
      theContent = theContent.split("&quote;").join("'"); 
      trace(theContent); 
+0

Możesz przynajmniej wskazać część tego kodu, która jest odpowiednia dla pytania. –

2

To jest trochę stary teraz, ale spróbuj if(A.indexOf(video/x-flv) != -1){ //Found it }

indexOf zwróci -1, jeśli podciąg nie pojawi się w nim. Więc jeśli jest to coś innego niż -1, oznacza to, że istnieje, mam nadzieję, że to pomaga, chociaż prawdopodobnie jestem trochę spóźniony!

+0

Przyjęta odpowiedź już zawiera te informacje ...> = 0 –

0

Wystarczy dodać odmianę rozwiązania przy użyciu zwykłego wyrażenie:

var videoTypeMatcher:RegExp = /video\/x-flv/g; 
if (videoTypeMatcher.test(A)) {...} 

- lub jako 1-liner -

if (/video\/x-flv/g.test(A)) {...} 

RegExp.test() Zwraca logiczną więc test jest jaśniejszy niż w przypadku arbitralnej wartości -1 (przynajmniej dla mnie).

Należy jednak pamiętać, że ta metoda jest nieco wolniejsza niż indexOf (source).

Powiązane problemy