0

ハマった。これは簡単です。しかし、それは私にとって悪夢になりました。

この文字列を解析して、とという名前の2つの変数に格納することはできませfeetinch

  var f = "5'9''"; // 5 feet 9 inch 

  var nn = f.indexOf("\'");
  var feet = f.substring(0, nn);

  var inch = f.substring(nn + 1, f.lastIndexOf("\'\'")-1); 

出力はであるinch必要があります9が、ですnil

4

5 に答える 5

10

正規表現を使用できます:

var f = "5'9''";
var rex = /^(\d+)'(\d+)''$/;
var match = rex.exec(f);
var feet, inch;
if (match) {
    feet = parseInt(match[1], 10);
    inch = parseInt(match[2], 10);
}

実例| ソース

正規表現を次のように変更すると

var rex = /^(\d+)'(\d+)(?:''|")$/;

...次に、インチ値の後にどちらか''またはより一般的なものを使用できるようにします。"

実例| ソース

于 2013-03-08T11:18:19.277 に答える
2
var f = "5'9''";
var a = f.split("'");
var feet = a[0];
var inch = a[1];
于 2013-03-08T11:19:53.390 に答える
0

上記の選択された回答の問題は、インチが指定されていない場合に一致しないことです。これは、フィート/インチの両方、またはフィートのみを処理するソリューションです。

  display( parse("5'9\"") );  
  display( parse("6'") );

  function parse(feetAndInches){
    var fAndI = feetAndInches.split("'");
    var feet = fAndI[0];
    var inches = fAndI[1] || "0";
    inches = inches.replace('"', '');
    var msg = feet+" feet, " + inches+ " inches";
    return msg;
  }

  function display(msg) {
    var p = document.createElement('p');
    p.innerHTML = String(msg);
    document.body.appendChild(p);
  }

ここで試してみてください: https://jsfiddle.net/dqeeysf6/3/

于 2016-12-16T16:55:37.467 に答える
0

-1から外すだけ

  var inch = f.substring(nn + 1, f.lastIndexOf("\'\'")-1); 

substring メソッドとして、開始インデックスと終了インデックスを取ります。そのはず :

 var inch = f.substring(nn + 1, f.lastIndexOf("\'\'")); 
于 2013-03-08T11:30:49.533 に答える
0

正規表現はトリックを行います:

var f = "5'9''";
var match = f.match(/^(\d+)'(\d+)''$/);
var feet = +match[1],
    inch = +match[2];
于 2013-03-08T11:23:08.047 に答える