请教一个正则表达式

已知有个动态的字符,固定是test_
它可能是
test_1
test_2_1
test_3
...
等等
最多两个下划线test_x_x,并且这个x一定是数字

1.固定已知的是test这个字符串,那么我要怎么写一个正则能够匹配出所有的可能性?

2.假如这个test也是个变量,它有可能是
test
tset
teet
tttt
...
等等
但可以用一个变量表示

let str;

那么这个正则表达式要怎么写可以匹配出变量str_x_x 类似这种不确定性的东西

阅读 1.5k
2 个回答

不知道这是不是你想要的

// =>  ["test_1", "test_2_1", "test_3", "test_4"]
findResult('test', 'test_1 test_2_1 test_3 test_哈哈 test_4')

/**
 * @param {String} prefix 前缀
 * @param {String} str 目标字符串
 */
function findResult (prefix, str) {
  prefix = prefix || ''
  var reg = new RegExp(prefix + '(_\\d+)+', 'g')
  var res = str.match(reg)
  console.log('reg', reg, res)
  return res
}

str中如果有正则中需要转义的东西就要转义

new RegExp('^' + str + '_\\d{1,2}$')

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