<input type="text" id="con" style="200px;height:50px;" value="345.56"/> <button id="but" style="200px;height:50px;">start</button> <div id="result" style="background-color: #0099FF;"></div> <div id="result1" style="background-color: #26B33E;"></div>
$(function(){ var $but = $("#but"); $but.on('click',function(){ var $con = $("#con").val(); var $result = $("#result"); var $result1 = $("#result1"); var reg1 = /^(d+)(.d{1,2})?$/; //必须整体都符合 //0: "345.56"整体结果 //1: "345"第一个小分组 //2: ".56"第二个小分组 $result.html(reg1.exec($con)); //这里的显示结果会重复两次的原因是,将数组赋值给了它,这个数组包含了三项,整体结果,第一个小分组,第二个小分组,所以结果看起来是重复了两次其实是: //res[0]->"345.56" res[1]->"345" res[2]->".56" var reg2 = /^(d+)(.d{1,2})?/; //在没有$结束的情况下可以匹配到字符串中符合的部分,即使后面的不符合例如:345.56asdf和345.5656 //结果依然是(这样也许可以实现截取两位2而不四舍五入) //0: "345.56" //1: "345" //2: ".56" var flag = reg2.test($con); if(flag){ //输入为345.588888 //结果为345.58 $result1.html(reg2.exec($con)[0]); } var res = reg1.exec($con) console.log(res,flag); //var ary = [1,2,3,4,5]; //$result1.html(ary);//->12345 }) })
value.replace(new RegExp(/( )/g), '-')
去除中间的空格,替换为-,2020/6/10 10:57:10=>2020/6/10-10:57:10
修饰符
g:全局匹配
i:忽略大小写匹配
m:多行匹配
量词元字符
+:出现1到多次元字符
?:出现0到1次元字符
*:出现0到多次元字符
{n}:出现n次
{n,}:出现n到多次
{n,m}:出现n到m次
特殊元字符
:转义字符(普转特或特转普)
.:除
之外的任意字符
d:匹配0-9中任意字符
D:匹配除0-9之外的任意字符
:匹配换行符
w:匹配0-9或字母或_中任意字符
s:匹配空白字符
:匹配边界符
:匹配制表符
:软空格
x|y:匹配x或y中的任意一个字符
[a-z]:匹配a-z中任意一个字符
[^a-z]:匹配非a-z的字符
[xyz]:匹配x或y或z中的一个字符
[^xyz]:匹配非xyz的字符
():小分组,大正则中的小正则
^:以某个元字符开始
$:以某个元字符结束
?::只匹配不捕获
?=:正向预查
?!:负向预查