正则表达式

菜鸟教程

语法

java正则

//第一种matches:测试ok
String regex = "Hello.*?(\\d+).*Demo";
boolean flag = str.matches(regex);

//第二种 pattern:


//第三种 test
formatt.test(value)

符号汇总

//定位符
^   匹配输入字符串开始的位置。
$   匹配输入字符串结尾的位置
\b  匹配一个单词边界,即字与空格间的位置。
\B  非单词边界匹配

//限定符
*    匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"* 等价于{0,}>=0
+    匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"+ 等价于 {1,}>=1
?    匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do""does" 中的 "does""doxy" 中的 "do"   <=1
{n}  n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o    =n
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有       >=n
{n,m} 最少匹配 n 次且最多匹配 m 次                                                                        >=n and <=m

//特别字符
( )    标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
\      将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
.      匹配除换行符 \n 之外的任何单字符。
{      标记限定符表达式的开始。
[      标记一个中括号表达式的开始
|      指明两项之间的一个选择。

//预定义字符
\d 数字:             [0-9] 
\D 非数字:           [^0-9] 
\s 空白字符:         [ \t\n\x0B\f\r] 
\S 非空白字符:       [^\s]
\w 单词字符:         [a-zA-Z_0-9] 
\W 非单词字符:       [^\w]          \w代表字母数字和下划线   \W 并不包含下划线


// 例如:必须包含大写字母,小写字母,数字,以及符号(包含下划线) 
str="^(?![A-Za-z0-9]+$)(?![a-z0-9_\\W]+$)(?![A-Za-z_\\W]+$)(?![A-Z0-9_\\W]+$)(?![A-Z0-9\\W]+$)[\\w\\W]{8,}$";
 
// 表达式的含义就是指 在满足  [\\w\\W]{8,}  的情况下(可以匹配到字母数字下划线符号)的情况下
// 排除 (?![A-Za-z0-9]+$)  只有字母数字的情况
// 排除 (?![a-z0-9_\\W]+$) 没有大写字母的情况
// 排除 (?![A-Za-z_\\W]+$) 没有数字的情况
// 排除 (?![A-Z0-9_\\W]+$) 没有小写字母的情况

案例



//金额
不是金额格式变成空
onkeyup="this.value=this.value.toString().match(/^\d+(?:\.\d{0,2})?/)"

function checkFund(value) {
   var exp = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
   if(!exp.test(value)) {
      $.modal.alertWarning("请输入金额格式");
      return;
   }
}

//整数
正整数: /[1-9][0-9]*/       //[1-9]设置第一个数字不是 0,[0-9]* 表示任意多个数字
整数的正则表达式(包括0,小数保留两位)^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*)|0)$
正数的正则表达式(不包括0,小数保留两位)^((0{1}\.\d{1,2})|([1-9]\d*\.{1}\d{1,2})|([1-9]+\d*))$
正整数的正则表达式(包括0)^[+]{0,1}(\d+)$
正整数的正则表达式(不包括0)^[1-9]\d*$
折扣(0-1)的小数的正则表达式(包括1)^(0\.\d+|1)$
折扣(0-1)的小数的正则表达式(不包括1)^(0\.\d+)$


//数字
 //判断是不是一个数字 或者 一个字符串里全是数字
function isNumber (value) {
    if (value === undefined || value === null || value === '') {
        return false
    }

    if (typeof(value) === 'string') {
         //正整数
         var reNumber = /^\d+$/
         //负整数
         var reNeNumber = /^-\d+$/
        //正实数
         var reRealNumber1 = /^[1-9]\d*[.]\d+$/  //非零开头
         var reRealNumber2 = /^0[.]\d+$/ //零开头
        //负实数
         var reNeRealNumber1 = /^-[1-9]\d*[.]\d+$/  //非零开头
         var reNeRealNumber2 = /^-0[.]\d+$/ //零开头

        if (reNumber.test(value) || reNeNumber.test(value) 
        || reRealNumber1.test(value) || reRealNumber2.test(value)
        || reNeRealNumber1.test(value)|| reNeRealNumber2.test(value)) {
             return true
        } else {
            return false
        }
   }else if (typeof(value) === 'number') {
        return true
   }else {
       return false
   }
}

失去焦点时校验

//失去焦点时校验
function checkMoney(){
    var money = $("#returns_money").val();
    var exp = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
    if(exp.test(money)){
        $("#money_check_result").html("");
    }else{
        $("#money_check_result").html("<i></i><label >请填写正确的金额</label>");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘然生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值