如何使用ASCII值检查JavaScript中的条件?

如何使用ASCII值检查JavaScript中的条件?,javascript,conditional,Javascript,Conditional,我正在尝试对输入字段进行验证,希望检查它是否是特殊字符 所以我想我可以用ASCII值来检查,但不确定在JavaScript语言中是如何做到的 在C语言中,我可以立即检查数组的字符串 if (input < 4 && document.myTable.inputField.value[0] < 65 ) if(输入

我正在尝试对输入字段进行验证,希望检查它是否是特殊字符

所以我想我可以用ASCII值来检查,但不确定在JavaScript语言中是如何做到的

在C语言中,我可以立即检查数组的字符串

if (input < 4 && document.myTable.inputField.value[0] < 65 )
if(输入<4&&document.myTable.inputField.value[0]<65)

我想检查它们是否少于四个字符,如果是特殊字符,我会给它们一条错误消息,否则什么都不做。

在C语言中,暴力检查是最干净、最简单的选择。在JavaScript中,它不是

js> /^[A-Za-z]+$/.test('foo')
true
js> /^[A-Za-z]+$/.test('bar123')
false

在C语言中,暴力检查是最干净、最简单的选择。在JavaScript中,它不是

js> /^[A-Za-z]+$/.test('foo')
true
js> /^[A-Za-z]+$/.test('bar123')
false

您可以使用正则表达式。我认为这更容易阅读。例如:
(/a-z/gi).test(myString)
如果
myString
包含除字母以外的任何内容(大写或小写),则返回true。因此,您的情况可以更改为:

if (input < 4 && !(/a-z/gi).test(document.myTable.inputField.value))
if(输入<4&&!(/a-z/gi).test(document.myTable.inputField.value))

您可以使用正则表达式。我认为这更容易阅读。例如:
(/a-z/gi).test(myString)
如果
myString
包含除字母以外的任何内容(大写或小写),则返回true。因此,您的情况可以更改为:

if (input < 4 && !(/a-z/gi).test(document.myTable.inputField.value))
if(输入<4&&!(/a-z/gi).test(document.myTable.inputField.value))

您可以使用字符串的
charCodeAt
方法来确定特定位置的ASCII码。假设
input
指的是输入字段,这将是一种方法:

var input = document.myTable.inputField.value;
if (input.length < 4 && input.charCodeAt(0) < 65 ) { /* etc. */ }
// examples charCodeAt
'foo'.charCodeAt(0);  //=> 102
'-foo'.charCodeAt(0); //=> 45
var input=document.myTable.inputField.value;
if(input.length<4&&input.charCodeAt(0)<65){/*etc.*/}
//示例charCodeAt
“foo”.charCodeAt(0);//=>102
'-foo'.charCodeAt(0);//=>45

您可以使用字符串的
charCodeAt
方法来确定特定位置的ASCII码。假设
input
指的是输入字段,这将是一种方法:

var input = document.myTable.inputField.value;
if (input.length < 4 && input.charCodeAt(0) < 65 ) { /* etc. */ }
// examples charCodeAt
'foo'.charCodeAt(0);  //=> 102
'-foo'.charCodeAt(0); //=> 45
var input=document.myTable.inputField.value;
if(input.length<4&&input.charCodeAt(0)<65){/*etc.*/}
//示例charCodeAt
“foo”.charCodeAt(0);//=>102
'-foo'.charCodeAt(0);//=>45


您想在“特殊字符”中包含什么?每个字符都有其特殊性。好的,使用关系运算符进行字符串对字符串的比较可以比较字符代码:
“@”A===true
“B”
。这就是你想要的吗?这不是一个复杂的问题,但“特殊”有点模棱两可。无论如何,如果它只是除了a-zA-Z之外的所有东西,那么正则表达式肯定是最可读的。@Ali:是的,但是这样做会很愚蠢。你想在“特殊字符”中包含什么?每个字符都有自己的特殊方式。嗯,使用关系运算符进行字符串到字符串的比较时,会比较字符代码:
“@”<“A”==true
“B”<“A”==false
。这就是你想要的吗?这不是一个复杂的问题,但“特殊”有点模棱两可。总之,如果除了“代码> A-SZ-Z true
false
的条件一样。有趣的是,一年后,我看着自己的问题,发现如果我知道RegEx,你的问题会是我可以接受的:)哇,这个看起来比C和C++复杂。那么,在if语句的条件下,如何应用它呢?很抱歉,我一直在问,但我真的很困惑如何应用它。与任何其他返回
true
false
的条件一样。有趣的是,一年后我看了自己的问题,发现如果我知道RegEx,你的问题会是我可以接受的:)有没有不使用正则表达式?是的。如果
myString
中的第一个字符位于ASCII表中的字母“A”之前,则表达式
myString.charCodeAt(0)<65
返回true。与
.charCodeAt()
互补的函数是
来自charcode
。看,我的情况会是这样吗
document.myTable.inputField[0]<65
还是我误解了什么?有没有不使用正则表达式的方法?是的。如果
myString
中的第一个字符位于ASCII表中的字母“A”之前,则表达式
myString.charCodeAt(0)<65
返回true。与
.charCodeAt()
互补的函数是
来自charcode
。看,我的情况会是这样吗
document.myTable.inputField[0]<65
还是我误解了什么?我刚刚找到了关于
charAt
的文章,我在这里查看,这正是我要问的。感谢我刚刚找到了一篇关于charAt的文章,我在这里查了一下,这正是我要问的。感谢