2017-05-09 9 views
0

部分文字列内の文字/文字列を検索する方法が見つかりません。その目的は、文字列が見つかった場合にアラートを作成することです。おかげ単語/文字がjavascriptの文字列に含まれているかどうか確認してください

https://jsfiddle.net/1rawcotx/2/

function validate() { 
 
    if (string.indexOf('worlds') > -1) { 
 
    alert("word found"); 
 
    } 
 
}
<div id="string"> 
 
    worlds and some other text 
 
</div> 
 

 
<button id="button" onclick="validate()">click me</button>

答えて

0

あなたはまた、直接String#includes()

を使用することができますdocument.getElementByIdまたはdocument.querySelector

を呼び出すことにより、DOM要素innerHTMLを取得する必要があります

0

あなたはdocument.getElementById('string').innerHTML

function validate() { 
 
var string =document.getElementById('string').innerHTML; 
 
    if (string.indexOf('worlds') > -1) { 
 
    alert("word found"); 
 
    } 
 
}
<div id="string"> 
 
    worlds and some other text 
 
</div> 
 

 
<button id="button" onclick="validate()">click me</button>

+1

*「文字列は未定義の変数である」*実は、それはOPのコードではありません。それは自動的なグローバルな(シャダー)です。 –

2

DOM要素がindexOfを持っていませんが、あなたの例では、stringはDOM要素で使用して、最初のstring変数を定義することができますの自動グローバルを使用しているため、divid="string"

divの内容を取得するには、そのinnerHTMLまたはinnerTextまたはtextContentプロパティを使用します。

自動グローバルを使用することも賛成できませんが(現在は仕様に含まれていますが)、あまりにも多くの競合するグローバルが存在するためです。代わりに、私は明示的にgetElementByIdを使用します。

function validate() { 
 
    if (document.getElementById("string").innerHTML.indexOf('worlds') > -1) { 
 
    alert("word found"); 
 
    } 
 
}
<div id="string"> 
 
    worlds and some other text 
 
</div> 
 

 
<button id="button" onclick="validate()">click me</button>

+0

whats '> -1'の意味は? –

+0

@RolandWarburton:あなたのコードからです。 :-) 'indexOf'は、部分文字列が見つかったときのインデックスを返します。見つからなければ' -1'を返します。 '> -1'は、通常は'!== -1'を使用していますが、それが見つかったかどうかを確認する一般的な方法です。いずれも問題ありません。最近のJavaScriptエンジンでは、 'indexOf'ではなく' includes'を使用することもできますが、(IE8などの)使用されていない古いエンジンにはそれがありません。 –

関連する問題