Javascript:正则表达式和.test

时间:2016-03-28 08:40:25

标签: javascript

我是JS的新手 - 这对你们来说很容易回答。我一直在阅读正则表达式,但无法弄清楚这段代码的全部含义:

我被要求使用以下规则编写myParseInt方法:

  • 如果给定的字符串只包含a,它应该进行转换 单个整数值(最后是空格 - 包括制表符,行 饲料...... - 两端)。
  • 对于所有其他字符串(包括表示浮点值的字符串), 它应该返回NaN。
  • 应该假设所有数字都没有签名并以基数书写 10。

答案是:

function myParseInt ( str ) { return /^\s*\d+\s*$/ . test (str) ? + str :  NaN; }

(如果我错了,请纠正我!)但我理解第一个和最后一个部分(/^\s*\s*$),它匹配str输入的开头和结尾白色空间字符。 \d+部分匹配数字字符1次或更多次。

.test(str)部分将str与所述正则表达式匹配,并给出一个真值或假值 -

但为什么会这样?在.test(str)之后,然后+ str: NaN;?我不确定?做什么,:语法。我知道如果它不匹配,它会与NaN相关。但我试图弄清楚我在MDN上找不到的语法。

非常感谢!

1 个答案:

答案 0 :(得分:0)

?是三元手术。 你写了一个条件,返回true / false后跟一个问号,然后返回truthy和falsy的内容。 它来自C。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator