2017-04-23 10 views
-1

今後のプロジェクトがあります。「年式は4桁の数字を入力する必要があります。」javascriptの.subscript

私は、初心者のレベルを書くための検証プログラムを持っています。

私はほとんどの部分を書いていますが、ユーザが2桁の形で年を入力する場合は、4桁の形式に変換する必要があります。

次に、新しい変数を宣言し、13桁の番号であるNational Identification Numberの4桁の数字を「.subscript」で抽出する必要があります。

これまでのところほとんどのコードを書いていますが、ここではそれをすべて公開することはしませんが、yearString = yearString.substring(2,4)に達するとコードは実行されません。

function cnpVal() { 
var cnpString = document.getElementById('lblcnp').value; //13 digit number 
var dayString = document.getElementById('txtday').value; 
var monthString = document.getElementById('txtmonth').value; 
var yearString = document.getElementById('txtyear').value; //2 or 4 digit number 

arrayCnp = cnpString.split(''); 


if (yearString.length != 4) { 
    alert("Year format requires you to enter 4 digits"); 
    return false; 
    } 
    else { 
     yearString = yearString.substring(2,4); 
    } 

は基本的に私は= [ "1"、 "9"、 "8" 明らかに1987年

すなわち、それは1987年のように動作しません、yearString変数が宣言され、4桁の年のために働いて必要、 "7"]は4文字列の配列ですが、インデックス4の文字列はありません。

私は自分自身を理解し、無知に残念に思っていたと思います。私は是正のために立つ。

Greets。

+0

*利用可能ですが、それはyearString = yearString.substring到達したときにコードが実行されません(2,4)* - それは、コンソールにどのようなエラーが表示さありませんか? –

+0

コンソールにエラーはありません。単に "return false"を返して終了します。 –

答えて

0

yearString = yearString.substring(2,4);は、yearStringから最後の2桁を抽出します。 String.prototype.substringは、最初の引数として開始インデックスと抽出に含まれないオプションの終了インデックスを受け入れます。したがって、yearString.substring(2,4)はインデックス2および3の文字を取り、インデックス4の文字は含みません。

substringはまた、あなたは最初の引数とどのように多くの文字を使用すると、2番目の引数として抽出するよう必要な部分文字列の開始インデックスをとるString.prototype.substr(start, length)を試みることができるHERE

可能です。 substrため

ドキュメントはHERE