2016-08-21 33 views
1

私はエラーを取得するなぜ私はこの単純なJSコードを実行しようとした後、私は理解し `tを:「ヌルのプロパティを読み取ることができません 『長さ』」

<!DOCTYPE html> 
 
<html> 
 
<script> 
 
    var str = "x*1/2"; 
 
    var patt1 = /(* | \/)/g; 
 
    var result = str.match(patt1); 
 
    document.write(result.length); 
 
</script> 
 
</html>
を私は typeofを試してみました私の変数の種類を確認する: str=string; patt1=object; result=object;しかし、私はまだ何の手がかりを持っていません s問題。

+1

何もマッチしていない場合、 'match'は' null'なのでを返すため。 – nem035

+1

あなたの正規表現パターンも無効です。 –

+0

@AdamAzad:それは有効です。 0個以上の空白、空白の後ろにスラッシュを探しています。 (OPが望んでいたものではないが...) –

答えて

2

私はエラーを取得するなぜ私はこの シンプルなJSコード

これが起こっているを実行しようとした後、あなたのパターンが設けられている入力"x*1/2"のために一致させることができないので、私は、理解し `tを。したがってmatchnullを返します。以下のスニペットを考えてみましょう。無意味なパターンを使用しますが、この入力に対しては一致させることができます。

var str = "x*1/2"; 
 
var patt1 = /([*]?\/)/g; 
 
var result = str.match(patt1); 
 
console.log(result.length);

+0

あなたはOPに 'document.write'を使わないように指示することができました:) –

+0

@AdamAzad' document.write'はここだけで使用されます。私はこのメソッドの使用を主張していません): – Christos

+0

あなたのコードに従ってください私のケースに適切な正規表現が見つかりました: 'patt1 = /([\ /] | [*])/ g;'これでOKです。 Christosに感謝します。 –

関連する問題