Skip to content

Commit dd71978

Browse files
committed
restyle parseValue
1 parent 292314f commit dd71978

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

InteractiveHtmlBom/web/util.js

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -221,45 +221,44 @@ function parseValue(val, ref) {
221221
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
222222
unit = 'r';
223223
}
224-
unit = unit[0];
225-
} else {
226-
ref = /^([a-z]+)\d+$/i.exec(ref);
227-
if (ref) {
228-
ref = ref[1].toLowerCase();
229-
if (ref == "c") unit = 'f';
230-
else if (ref == "l") unit = 'h';
231-
else if (ref == "r" || ref == "rv") unit = 'r';
232-
else unit = null;
233-
}
224+
return unit[0];
234225
}
235-
return unit;
226+
227+
var resarr = /^([a-z]+)\d+$/i.exec(ref);
228+
switch (Array.isArray(resarr) && resarr[1].toLowerCase()) {
229+
case "c": return 'f';
230+
case "l": return 'h';
231+
case "r":
232+
case "rv": return 'r';
233+
}
234+
return null;
236235
};
237236
val = val.replace(/,/g, "");
238237
var match = units.valueRegex.exec(val);
239-
var unit;
240-
if (match) {
241-
val = parseFloat(match[1]);
238+
if (Array.isArray(match)) {
239+
var unit = inferUnit(match[3], ref);
240+
var val_i = parseFloat(match[1]);
241+
if (!unit) return null;
242242
if (match[2]) {
243-
val = val * units.getMultiplier(match[2]);
243+
val_i = val_i * getMultiplier(match[2]);
244244
}
245-
unit = inferUnit(match[3], ref);
246-
if (!unit) return null;
247-
else return {
248-
val: val,
245+
return {
246+
val: val_i,
249247
unit: unit,
250248
extra: match[4],
251249
}
252250
}
251+
253252
match = units.valueAltRegex.exec(val);
254-
if (match && (match[1] || match[4])) {
255-
val = parseFloat(match[1] + "." + match[4]);
253+
if (Array.isArray(match) && (match[1] || match[4])) {
254+
var unit = inferUnit(match[2], ref);
255+
var val_i = parseFloat(match[1] + "." + match[4]);
256+
if (!unit) return null;
256257
if (match[3]) {
257-
val = val * units.getMultiplier(match[3]);
258+
val_i = val_i * getMultiplier(match[3]);
258259
}
259-
unit = inferUnit(match[2], ref);
260-
if (!unit) return null;
261-
else return {
262-
val: val,
260+
return {
261+
val: val_i,
263262
unit: unit,
264263
extra: match[5],
265264
}

0 commit comments

Comments
 (0)