gpt4 book ai didi

javascript - 代码未通过首次验证

转载 作者:数据小太阳 更新时间:2023-10-29 04:37:17 25 4
gpt4 key购买 nike

我有一个函数,其中我首先检查作为参数传递的字符串是否仅包含字母。但它总是返回错误。下面是我的jsfiddle

function takeString (str) {
var regex = "/^[A-Za-z]+$/";

if (str.match(regex)) {
if (str.charCodeAt(0) === str.toUpperCase().charCodeAt(0)) {
alert('true');
return true;
}
else {
alert('false');
return false;
}
}
else {
alert('Only letters please.');
}
}

takeString('string');

上面的代码总是提醒 Only letters please

最佳答案

您需要去掉引号才能使 regex 成为正则表达式文字:

var regex = /^[A-Za-z]+$/;

这是一个 updated fiddle .

目前,regex 指的是字符串文字。当您将不是正则表达式对象或文字的内容传递给 String#match 时,它会将该参数隐式转换为正则表达式对象(参见 ES5 15.5.4.10 ):

  • If Type(regexp) is Object and the value of the [[Class]] internal property of regexp is "RegExp", then let rx be regexp;
  • Else, let rx be a new RegExp object created as if by the expression new RegExp( regexp) where RegExp is the standard built-in constructor with that name.

您的正则表达式因此被解释为这样(因为该字符串包含您期望分隔正则表达式文字的正斜杠字符):

var regex = /\/^[A-Za-z]+$\//;

这无法匹配任何内容,因为它正在寻找正斜杠,后跟字符串的开头。

关于javascript - 代码未通过首次验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com