gpt4 book ai didi

javascript - 测试字符串是否每个字母两侧都有 '+' 符号

转载 作者:行者123 更新时间:2023-12-02 18:49:22 24 4
gpt4 key购买 nike

这个程序应该测试 str,如果 str 中的每个字母两边都有一个“+”号,那么该函数应该返回 true。否则,它应该返回 false。我不断收到错误“SyntaxError:无效量词”。

function SimpleSymbols(str) { 
var boolean = false;
for(var i=1;i<(str.length-1);i++){
if(/\w/.test(str.charAt(i))){
if(str.charAt(i-1).match('+') && str.charAt(i+1).match('+')){
boolean = true;
}else{
boolean = false;
}
}
}
str = boolean;
return str;

}

最佳答案

match 用于正则表达式,因此它尝试将 '+' 转换为正则表达式,但失败,因为 /+/ 不是有效的正则表达式(应为 '\\+'/\+/)。但直接测试每个字符会更容易,如下所示:

  if(str.charAt(i-1) == '+' && str.charAt(i+1) == '+'){

另请注意,/\w/ 匹配任何“单词”字符,包括字母、数字和下划线。要仅使用个字母字符,应使用/[a-z]/i(末尾的i使其不区分大小写,因此它将也匹配大写字母)。

但是反转条件似乎要简单得多。只需测试字符串是否包含+符号包围的字母或字符串开头或结尾的字母,然后返回false 如果是这样,就像这样:

function SimpleSymbols(str) { 
return ! /(^|[^+])[a-z]|[a-z]([^+]|$)/i.test(str);
}

关于javascript - 测试字符串是否每个字母两侧都有 '+' 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358861/

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