为了账号安全,请及时绑定邮箱和手机立即绑定

如何在字符串中搜索 0000 和 9999 中的“字符串”匹配项

如何在字符串中搜索 0000 和 9999 中的“字符串”匹配项

天涯尽头无女友 2021-08-20 17:08:28
我有一个可能包含帧号的字符串(文件名)。如果存在,该数字应该是 0000 到 9999 之间的任何地方,包括 0000 到 9999。我知道如何找到 0 到 9999 的匹配项。但它特别需要找到 4 位数字匹配项。所以这不是我想要的工作方式......var fileName = "Ext 01_main Concept A0000"for (var i = 0; i < 9999; i++){   if (fileName.indexOf([i]) != -1) {   var frame = i;   }}在这种情况下,frame 需要为“0000” 有什么建议吗?谢谢!
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超22个赞

您可以利用正则表达式来测试字符串并提取 4 位数字:


var fileName = "Ext 01_main Concept A0000"

console.log(fileName.match(/\d{4}/)); // result: [ 0000 ]

如果有问题的 4 位数字始终出现在字符串的末尾,您还可以使用$令牌来确保有问题的 4 位数字显示如下:


var fileName = "Ext 01_main Concept A0000"

console.log(fileName.match(/\d{4}$/)); // result: [ 0000 ]


查看完整回答
反对 回复 2021-08-20
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

你可以使用正则表达式来做到这一点:


var fileName = "Ext 01_main Concept A0000";

// The regexp will search for any 4 digits from 0000 to 9999 

var match = fileName.match(/[0-9]{4}/g);

// The variable match will have an array with all matching values

// In this case the log should write [ '0000' ]

console.log(match);


查看完整回答
反对 回复 2021-08-20
?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以对字符串中的数字进行正则表达式并测试:


 var fileName = "Ext 01_main Concept A0000"

const regex = /\d{4}/; // if it's always the last, it could be /\d{4}$/


thenum = parseInt(fileName.match(regex)[0],10); // "0000"

console.log( thenum > 0 && thenum < 9999 );

您的代码可能会工作,但最坏的情况是它会执行 9998 次不必要的检查!


查看完整回答
反对 回复 2021-08-20
  • 3 回答
  • 0 关注
  • 342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号