JavaScript正则表达式校验证纯数字代码/字符串中查找数字(超全)

用JavaScript判断内容是否纯数字;

第一种写法:

function isDigit(s) {
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) {
return false
}
return true
}
console.log(isDigit("111"));//true
console.log(isDigit(111));//true
console.log(isDigit(0111));//true
console.log(isDigit(11111.1));//false
console.log(isDigit(11111.1123123));//false
console.log(isDigit("1111w"));//false

另外一种纯数字的验证方法

function validate(val){
var reg = new RegExp("^[0-9]*$");
if(!reg.test(val)){
return false;
}
if(!/^[0-9]*$/.test(val)){
return false;
}
return true;
}
console.log(validate("111"));//true
console.log(validate(111));//true
console.log(validate(0111));//true
console.log(validate(11111.1));//false
console.log(validate(11111.1123123));//false
console.log(validate("1111w"));//false

验证数字的正则表达式集

  • 验证数字:^[0-9]*$
  • 验证n位的数字:^\d{n}$
  • 验证至少n位数字:^\d{n,}$
  • 验证m-n位的数字:^\d{m,n}$
  • 验证零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  • 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  • 验证非零的正整数:^\+?[1-9][0-9]*$
  • 验证非零的负整数:^\-[1-9][0-9]*$
  • 验证非负整数(正整数 + 0) ^\d+$
  • 验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
  • 验证长度为3的字符:^.{3}$
  • 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
  • 整数:^-?\d+$
  • 非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
  • 正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
  • 非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
  • 负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
  • 浮点数 ^(-?\d+)(\.\d+)?$

下面是更多的验证数字相关的正则表达式

/**正整数匹配表达式*/
var pattern=/^[0-9]*[1-9][0-9]*$/;
var flag = pattern.test(a);
//如果a是正整数,flag的boolean值为true,如果a不是正整数,flag的boolean值为false。

/**浮点数匹配表达式*/
var pattern = /^([-]){0,1}([0-9]){1,}([.]){0,1}([0-9]){0,}$/;

/**浮点数匹配表达式且只保留两位小数*/
var pattern=/^-?\d+[\.\d]?\d{0,2}$/;

/**正浮点数匹配表达式*/
var pattern=/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

/**正浮点数且保留两位小数匹配表达式*/
var pattern=/^(([1-9]\d*(\.\d?[0-9])?)|(0\.[1-9][0-9])|(0\.[0][1-9]))$/;

/**负浮点数匹配表达式*/
var pattern=/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;

/**负浮点数且保留两位小数匹配表达式*/
var pattern=/^-(([1-9]\d*(\.\d?[0-9])?)|(0\.[1-9][0-9])|(0\.[0][1-9]))$/;

/**负浮点数+0 匹配表达式*/
var pattern=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;

/**负浮点数+0 并且保留两位小数匹配表达式*/
var pattern=/^((-\d+[\.\d]?\d{0,2})|(0+(\.0+)?))$/;

//正浮点+0匹配表达式
var pattern = /^\d+(\.\d+)?$/;

/**正浮点+0匹配表达式且只保留两位小数*/
var pattern=/^\d+[\.\d]?\d{0,2}$/;

/**整数匹配表达式*/
var pattern=/^-?\d+$/;

/**正整数匹配表达式*/
var pattern=/^[0-9]*[1-9][0-9]*$/;

/**负整数匹配表达式*/
var pattern=/^-[0-9]*[1-9][0-9]*$/;

/**正整数+0 的匹配表达式*/
var pattern=/^\d+$/;

/**负整数+0 的匹配表达式*/
var pattern=/^((-\d+)|(0+))$/;

/**全是数字匹配表达式*/
var pattern=/^[0-9]{1,20}$/

正则表达式提取数字使用

var strContent = "A2B3";
var regexp = /[0-9]*/g;
var lll = strContent.match(regexp);
console.log(lll);//["", "2", "", "3", ""];

// 注意 -- regexp表达式不是字符串,不能使用"引号括起来。

var regexp1 = /[0-9]/g;
var lll2 = strContent.match(regexp1);
console.log(lll2);//["2", "3"];

strContent ="A21B30";
var regexp2 = /[0-9]+/g;//或者 /\d+/g
var lll3 = strContent.match(regexp2);
console.log(lll3);//["21", "30"]

字符串中查找数字

var str="去年是2016年,今年是2017年,hah222";
var newStr=str.replace(/\d+/g, function () {
//调用方法时内部会产生 this 和 arguments
console.log(arguments[0]);
//查找数字后,可以对数字进行其他操作
return arguments[0] * 2;
});
console.log(newStr);

~~~~

未经允许不得转载:WEB前端开发 » JavaScript正则表达式校验证纯数字代码/字符串中查找数字(超全)

赞 (0)