Javascript CoderByte SimpleSymbols挑战:字符串中的模式识别(使用RegExp)
问题是: 让函数SimpleSymbolsstr获取正在传递的str参数,并通过返回字符串true或false来确定它是否是可接受的序列。str参数将由+和=符号组成,它们之间有几个字母,即++d++=+c++==a,为使字符串为真,每个字母必须由+符号包围。所以左边的字符串是假的。字符串不会为空,并且至少有一个字母 我的代码:Javascript CoderByte SimpleSymbols挑战:字符串中的模式识别(使用RegExp),javascript,regex,string,Javascript,Regex,String,问题是: 让函数SimpleSymbolsstr获取正在传递的str参数,并通过返回字符串true或false来确定它是否是可接受的序列。str参数将由+和=符号组成,它们之间有几个字母,即++d++=+c++==a,为使字符串为真,每个字母必须由+符号包围。所以左边的字符串是假的。字符串不会为空,并且至少有一个字母 我的代码: function SimpleSymbols(str) { var arr = str.match(/[\+][a-zA-Z][\+]/g); var to
function SimpleSymbols(str) {
var arr = str.match(/[\+][a-zA-Z][\+]/g);
var total = str.match(/[a-zA-Z]/g);
if(arr === null || total === null)
return false;
else if(arr.length >= 1 && arr.length === total.length)
return true;
else
return false;
}
除了这三个通过之外的所有测试用例:
-"+z+z+z+"
-"2+a+a+"
-"+z+z+==+a+"
我所做的:在这个问题上检查另一个。尝试了另一个使用regex的解决方案,但是它在输入方面有问题,比如b
我认为问题与模式为+char+char+时有关,因为许多其他测试用例类似于++char+==+char+==使用lookahead/\+[a-zA-Z]?=\+/非常感谢!所有测试用例都通过了。