如何在javascript中解析英尺英寸字符串?
我被卡住了。这个很简单。但是,这已经成为我的噩梦 我无法解析此字符串并将其存储到名为如何在javascript中解析英尺英寸字符串?,javascript,Javascript,我被卡住了。这个很简单。但是,这已经成为我的噩梦 我无法解析此字符串并将其存储到名为feet和inch的两个变量中 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您可以使用: | 如果将正则表
feet
和inch
的两个变量中
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
您可以使用:
|
如果将正则表达式更改为
var rex = /^(\d+)'(\d+)(?:''|")$/;
…然后它将允许您在英寸值之后使用'
或更常见的“
|正则表达式将实现以下功能:
var f = "5'9''";
var match = f.match(/^(\d+)'(\d+)''$/);
var feet = +match[1],
inch = +match[2];
只需从中删除
-1
var inch = f.substring(nn + 1, f.lastIndexOf("\'\'")-1);
Assubstring
方法采用开始索引和结束索引。它应该是:
var inch = f.substring(nn + 1, f.lastIndexOf("\'\'"));
以上所选答案的问题是,如果没有提供英寸,则答案不匹配。这里有一个解决方案,可同时处理英尺/英寸或仅处理英尺
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);
}
在这里试试看:@Regexident最后一行是9而不是5。@Adeel:嗯,正确。打字错误。修复了,我的错。
var inch = f.substring(nn + 1, f.lastIndexOf("\'\'"));
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);
}