Javascript 使用包含正则表达式的变量
我想将正则表达式存储在一个变量中,以便多次使用。例如,我有一些正则表达式可以使用逗号分隔数字:Javascript 使用包含正则表达式的变量,javascript,regex,Javascript,Regex,我想将正则表达式存储在一个变量中,以便多次使用。例如,我有一些正则表达式可以使用逗号分隔数字: 当然,它的输出是字符串1400000,但是我在包含不同数字/长度的许多变量上使用了很多次,为了简单起见,我更愿意将其存储在变量中,而不是每次显式编写它。这是可能的吗?只需将regexp分配给一个变量: var numberCommasRegexp=/\B(?=(\d{3})+(?!\d))/g; var numAcquired=1400000; numAcquired=numAcquired.toS
当然,它的输出是字符串
1400000
,但是我在包含不同数字/长度的许多变量上使用了很多次,为了简单起见,我更愿意将其存储在变量中,而不是每次显式编写它。这是可能的吗?只需将regexp分配给一个变量:
var numberCommasRegexp=/\B(?=(\d{3})+(?!\d))/g;
var numAcquired=1400000;
numAcquired=numAcquired.toString().replace(numberCommasRegexp,,);
警觉(不需要)代码>,并且您已经使用的形式--/\B(?=(\d{3})+(?!\d))/g
--是它的文本形式。因此,您可以像任何文字形式一样将该值指定给变量:
var pattern = /\B(?=(\d{3})+(?!\d))/g
然后在任何接受模式的String
方法中重用该值:
numAcquired.toString().replace(pattern, ',');
如果您想要一个可运行的示例,请参阅我同事的答案,答案与此相同。var re=new RegExp('\B(?=(\d{3})+(?!\d)),'g')代码>?您已经知道如何声明变量,以及如何生成正则表达式对象。那就不难了,这是个有道理的问题。谢谢你的邀请。记住接受最好的答案@Oriol,并不是所有对你来说显而易见的事情对其他人来说都是显而易见的。RegExp不是一种类型。哈,我真傻,我以为它不仅仅是这样;以前我试过的时候它不起作用。。第一次肯定做错了什么
numAcquired.toString().replace(pattern, ',');