【发布时间】:2017-05-27 10:00:28
【问题描述】:
之前提交过关于这个的,此时所有的部分都是分开工作的,但不是一起工作的。我试过移动一些东西,看看它是否只是一个订单问题,但这并没有解决它。试图将它们放在一个大的 if/else 中似乎也不起作用。我可以让字符串仅显示字母数字字符,也可以显示“不是字符串”,但我无法让代码同时执行这两种操作。 此部分将仅返回正确的字母数字:
function nothingSpecial(str) {
var re = /[A-Z\s0-9]/i;
var newStr = '';
for(var i=0; i<str.length; i++){
if (re.test(str[i])){
newStr = newStr + str[i];
}
}
return newStr;
if(str.length <= 0) {
return ("Not a string!");
}
if (typeof str !== String) {
return "Not a string!"}
}
nothingSpecial("asdfalsd@#$#")
这将返回“不是字符串!”,即使它应该显示字母数字,但对于数字和“”是正确的或看似正确的
function nothingSpecial(str) {
var re = /[A-Z\s0-9]/i;
var newStr = '';
if(str.length <= 0) {
return ("Not a string!");
}
if (typeof str !== String) {
return "Not a string!"}
for(var i=0; i<str.length; i++){
if (re.test(str[i])){
newStr = newStr + str[i];
}
}
return newStr;
}
nothingSpecial(23)
我做错了什么? -先感谢您!
【问题讨论】:
-
第一个sn-p函数中间有return,其他行不执行
-
你想做什么?就算你提早提交了,我们怎么知道呢?
-
当您使用数字参数 (23) 调用函数时,您的第二个 sn-p 正确返回“不是字符串”。数字不是字符串。
-
@edc65 - 有没有办法解决这个问题?看起来你可以有多个返回选项,只要它们在块内(例如,多个单独的 if/else 语句)这只是练习。我知道简单的方法是使用 .replace,我正在练习使用循环,想看看如何使它工作。我之前发布了(单独的帖子)关于代码的不同问题。感谢您查看代码!
-
您的返回值很好,但您正在检查 'str' 是一个函数,而不是一个字符串。看我的回答。
标签: javascript if-statement return alphanumeric