JavaScript变量少于4个字符

4
我有一个JavaScript变量叫做"name"。如果变量"name"包含的字符数少于4个,我希望执行以下代码:msg('name','Your name must contain minimum 4 characters.')'; 我尝试了一些代码,但它会被解释为数学运算符,请问有什么想法吗?谢谢。
if(name < 4 ) {
  msg('name','Your name must contain minimum 4 characters.');
  return false;
}

1
name 是如何声明的?如果 name 是一个字符串变量,那么你可能想要使用 name.length - Jared Farrish
1
找一个好的JavaScript语言参考网站。这将帮助您解决简单的问题,而且通过熟悉该语言,您还可以学到更多知识。 - CM Kanode
那么 AbeJoeRon 不受欢迎吗? - some
也不是Ian、Bob、Jon、Ann……实际上,如果我们在谈论验证姓名,你可能想要阅读这里的答案:http://stackoverflow.com/questions/3853346/how-to-validate-human-names-in-cakephp/3853820#3853820 - Spudley
4个回答

15
if (name.length < 4) {
   ...
}

8

你可能想检查字符串的长度,而不是字符串本身的数值:

if(name.length < 4) {
    // ...

2
if(name.length < 4) {
    //Do something
}

您需要检查变量的长度

有趣的事实:

  • 长度也可用于检查数组的长度
  • \n(换行符)也会被计算为一个字符。

1
根据您对“字符”的定义,到目前为止发布的所有答案都是不正确的。当您确定只输入BMP Unicode符号时,string.length答案才是可靠的。例如,'a'.length == 1,正如您所期望的那样。
然而,对于补充(非BMP)符号,情况有些不同。例如,''.length == 2,即使只有一个Unicode符号。这是因为JavaScript将UCS-2代码单元公开为“字符”
幸运的是,仍然可以通过一些技巧来计算JavaScript字符串中Unicode符号的数量。您可以使用Punycode.js的实用程序函数在UCS-2字符串和UTF-16代码点之间进行转换以实现此目的:
// `String.length` replacement that only counts full Unicode characters
punycode.ucs2.decode('a').length; // 1
punycode.ucs2.decode('').length; // 1 (note that `''.length == 2`!)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接