2016-09-07 7 views
1

文字列に数値が含まれているかどうかを確認する必要があります。「.」または「_」または「」です。 しかしjslintは、エラーの下に表示されます。jslintはエスケープされていない ' - 'を返しますが正規表現は

Lint at line 63160 character 53: Unescaped '-'

以下は私のコードです。

if (value.match(/^[0-9._-]+$/)) { 
    return true; 
} 
+0

文字クラス内の任意の場所にハイフンをエスケープして、パターン修正後にリテラルハイフンを意味し続けることをお勧めしますが、確かにこれは良いパターンのように見えます。 –

+0

間違いなく、jslintはおそらくあなたがとにかくそれをエスケープすることを望んでいます。 –

+1

正規表現が正しいです。投稿したコードも正しいです。おそらくJSLintはそのことを知るためにその周りのコンテキストを見ていないだけです。しかし、たとえそれがあっても、それをエスケープするのは良い考えです。文字通り0とダッシュの '[0-]'の正規表現があり、その後リテラル9を追加すると想像してください。 '[0-9] 'これは範囲です。それは私がJSLintが防止したいと思うものであると思われる不注意な間違いでしょう – vlaz

答えて

1

jslintドキュメントを読んで、うまくいきました! はまた、以下jshint here

で報告されたバグがある修正

if(value.match(/^[0-9\-]+$/i)) 

はご協力いただきありがとうございます。

関連する問題