正则表达式,匹配以【ASWD】开头,后面跟1到2位数字,部分匹配成功,部分匹配失败问题

新手上路,请多包涵

大家能不能帮我看看这个正则到底哪里有问题,我要匹配以【ASWD】开头,后面跟1到2位数字,
var reg = /^[ADWS]\d{1,2}$/gi;
coordinateArr.forEach((elem)=>{

console.log('elem=', elem);
let flag = reg.test(elem);
console.log('flag=', flag);
if(flag){
    // 获取方向
    var direction = elem.substr(0, 1);
    var coordinate = Number(elem.substr(1));
    console.log('directioncoordinate=', direction, coordinate);  
}

});
为啥S20跟D30是有问题的
image.png

阅读 1.8k
1 个回答

我测试了你的正则没有问题

debtool.Console

我认为 S20 后可能尾随空白字符比如空格,可以这样修改来验证

- console.log('elem=', elem);
+ console.log('elem="' + elem + '"');

PS 如果要匹配空白字符,建议先 trim,而不是更改正则表达式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题