如何访问数字的前两位数字

时间:2019-01-23 10:21:04

标签: javascript string reactjs

我想访问一个数字的前两位数字,并且我尝试使用substring,substr和slice,但它们都不起作用。抛出错误,指出未定义子字符串。

render() {

        let trial123 = this.props.buildInfo["abc.version"];

        var str = trial123.toString();

        var strFirstThree = str.substring(0,3);

        console.log(strFirstThree);
}

我已经尝试了上面的代码

(以上代码)的输出 trial123 = 19.0.0.1

我只需要19.0

我该如何实现?

3 个答案:

答案 0 :(得分:2)

我将其按点分隔,然后采用前两个元素:

const trial = "19.0.0.1"

console.log(trial.split(".").slice(0, 2).join("."))
// 19.0

答案 1 :(得分:0)

您可以先split,然后再join

const [ first, second ] = trial123.split('.');
const result = [ first, second ].join('.');

答案 2 :(得分:0)

我添加了该工作的代码段:(解释之后,逐行显示)。

function getFakePropValue(){
   return Math.round(Math.random()) == 0 ? "19.0.0.1" : null;
}

let trial123 = getFakePropValue() || "";
//var str = trial123.toString();  
// is the toString() really necessary? aren't you passing it along as a String already?
var strFirstThree = trial123.split('.');
//var strFirstThree = str.substring(0,3);
//I wouldn't use substring , what if the address 191.0.0.1 ?
if(strFirstThree.length >= 2)
    console.log(strFirstThree.splice(0,2).join("."));
else 
    console.error("prop was empty");

由于您使用的是 React ,因此props的值已被函数getFakePropValue伪造。里面的代码是无关紧要的,如果您在React组件中允许prop为空,那么我正在做的是随机返回一个String。这是为了展示如何创建最小的健壮代码来避免出现异常。

接下来,下面是一个安全网,以确保变量trial123始终具有字符串值,即使它是""

let trial123 = getFakePropValue() || "";

这意味着,如果函数返回类似null的内容,则布尔表达式将执行第二个间隔,并返回空字符串"",这将是trial123的值。

继续,我删除了转换为toString的那一行,我假设您已经在获取字符串格式的值。接下来。

var strFirstThree = trial123.split('.');

这将创建一个数组,其中每个位置都包含一部分IP地址。所以19.0.0.1将成为[19,0,0,1],这要归功于分隔符.的分割。接下来。

if(strFirstThree.length >= 2)
    console.log(strFirstThree.splice(0,2).join("."));
else 
    console.error("prop was empty");

最后一段代码使用条件if来确保我的数组具有值,然后再尝试splicejoin。条件是避免异常,因为空数组上的splicejoin仅返回一个空字符串。相反,您可以提出错误或需要的东西。因此,如果数组具有值,则我将splice(0,2)保留在前两个位置,然后将该数组与'。'连接在一起。我推荐的方法比您想使用的substr方法要多,因为如果得到的数字是 191.0.0.1 ,那么substr会返回错误的字符串,但是splicejoin永远不会发生。

有待改进的地方

  • 我强烈建议使用更多人类可理解的变量(在代码中反映出它们的用法)
  • 检查道具价值的正确途径是通过Prop.Types,它超级好用,非常有用。

编码愉快!