1
merlin852 2014-01-09 14:04:21 +08:00
正则主要是针对string处理
你这要求按数值比较,还会变动,还是用 > or < 比较好 正则针对2位以上的数值处理真的很弱 |
2
Mutoo 2014-01-09 14:39:42 +08:00
数字不多的话,可以全部列出来
2~9 11,12,13: \b((11|12|13)?|[23456789])\b 原则,字符串长的放前面,用分组+惰性匹配,短的放后面。 |
3
Mutoo 2014-01-09 14:46:48 +08:00
@Mutoo 纠正一下,貌似不需要惰性匹配
\b((11|12|13|15)|[23456789])\b > "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 105".match(/\b((11|12|13)|[23456789])\b/g) ["2", "3", "4", "5", "6", "7", "8", "9", "11", "12", "13"] |
4
older OP 100到350 这样要写很长的吧
|
6
binux 2014-01-09 15:46:36 +08:00
又一个X-Y问题?这压根就不是一个正则文法吧
|
7
Mutoo 2014-01-09 15:53:28 +08:00
@older 那样的话应该没办法纯正则了。
你应该用回调函数来处理,匹配所有数字,然后传入处理就行了,大部分语言都支持。 str.match(/\d+/g, function(n){ var num = parseInt(n); // do something you want }); |
8
liberize 2014-01-09 17:44:25 +08:00
楼主最好把应用场景说出来,应该有比用纯正则更好的方式
|
9
yinheli 2014-01-10 01:57:33 +08:00
最好是粘贴一些范例, 以及你需要得到的效果, 也好让大家测试
|