【发布时间】:2016-02-14 20:27:33
【问题描述】:
JavaScript 新手,阅读了很多,但似乎无法正确理解这一点。我将 dType 链接到 HTML 页面中的 onclick 事件。如果用户输入不是数字并且输入与“true”或“false”不匹配,我似乎无法获得第一个 else if 语句的语法正确,我希望在该语句中出现警报。第二个 else if 似乎匹配任何相等长度的字符串,而我虽然这使数组项不区分大小写。对于第 4 点,我希望在用户输入和值介于 -infinity 和 infinity 之间时发出警报。最终目标是提供有关可能数据类型的一些信息,尽管从技术上讲,输入到提示中的任何内容都是字符串。据我所知,我已经阅读了几个小时的所有这些文档,并希望直接询问可以帮助我了解这里发生了什么。感谢任何花时间阅读本文的人,尽管它的结构很差。
function dType() {
var inputP= prompt("Type something Nice and Ill tell you something useful:");
if (inputP === "") {
alert('At least give me something...');
} else if (isNaN(inputP)) && inputP.match(^(?!'true' || 'false').)*$){
alert('This is a String');
} else if inputP.match(/['true','false']/i){
alert('This might be a boolean');
} else if inputP.match(/\d+/g){
alert('This has some numbers in it')
} else if inputP = (inputP > MATH.min('') && inputP < MATH.max('')){
alert('this is a number')
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
【问题讨论】:
-
使用
!/true/.test(inputP) && !/false/.test(inputP)代替inputP.match(^(?!'true' || 'false').)*$)。同样,尝试将inputP.match(/\d+/g)替换为/\d+/.test(inputP)。
标签: javascript jquery regex