我遇到了正则表达式的一些问题; 我想只在字符串中留下有效数字,人们可能会输入:
11.2.2
abd11,asd11
等等,
str = .replace(/[^[0-9]{1,2}([.][0-9]{1,2})?$]/g, '');
所以我只需要允许用户输入的任何数字和一个点;
This answer但是当我尝试将其放入时不起作用:
str.replace(/(?<=^| )\d+(\.\d+)?(?=$| )|(?<=^| )\.\d+(?=$| )/,'');
它给了我一个JS错误。请帮我理解我做错了什么。
p.s:谢谢你们所有人帮助我,我找到了解决方案HERE,所以我认为线程可能会被关闭。
答案 0 :(得分:1)
使用正则表达式
\d*[0-9]\.\d*[0-9]
答案 1 :(得分:0)
您必须使用引号。像这样:
str.replace("/(?<=^| )\d+(\.\d+)?(?=$| )|(?<=^| )\.\d+(?=$| )/",'');
答案 2 :(得分:0)
怎么样:
/(?: |^)\d*\.?\d+(?: |$)/
这将匹配:
12
12.34
.34