2011-07-03 26 views

答えて

18

利用のindexOf()

var str="myfile.doc"; 
var str2="mydirectory"; 

if(str.indexOf('.') !== -1) 
{ 
    // would be true. Period found in file name 
} 

if(str2.indexOf('.') !== -1) 
{ 
    // would be false. No period found in directory name 
} 
+1

'indexOf'は、文字が見つからないときは-1を返し、0ではなく-1を返します。 – jwodder

+0

-1とは異なります。最初の文字がピリオドである場合、indexOf()は0を返します。 – kwah

+0

strpos()とindexOf()のコーディングを考えているとどうなりますか – AlienWebguy

1

someString.indexOf('.') != -1

if (myString.match(\.)) { 
    doSomething(); 
} 
6

ただindexOfメソッドの戻り値をテストします。正規表現の必要はありません。

+0

真enough..gets私の1 – james

0

indexOfを使用してください。部分文字列の位置を示す整数を返します。見つからない場合は-1を返します。

var test="myfile.doc" 
if (test.indexOf('.')) {alert("Period found!";} 
else {alert("Period not found. Sorry!";} 
+4

' if(test.indexOf( '。')) 'は、' indexOf'がテストする必要があるので-1ではなく0を返すかどうかをテストします。期間が1つ欠けている – jwodder

+0

あなたはそうです。私は提出する前にそれをテストしたはずです。 – ratsbane

1

ただ、すでに言われているものに追加する:たとえば

これは良いですか否かの異なった意見があります。あなたが好きな場合メソッドですべてのStringインスタンスを拡張することができます:

String.prototype.contains = function(char) { 
    return this.indexOf(char) !== -1; 
}; 

私はこの種のものが好きです。これは、メソッドが何をするのか(相対的に)明白な場合です。

0

私はこれが古い質問ですが、ここでそれを行うための新しい方法は、(古いブラウザでサポートされていない)ことを知っている:

str.includes('.'); //returns true or false 

docs

関連する問題