正则小方法;替换链接地址中不合法的双斜杠 ‘//‘;正则验证是否全部是空白字符;字符下划线转驼峰;驼峰转换下划线;最完美的邮箱验证;国际手机号验证;验证金额保留两位小数;字符串去重;首字母转大写

替换链接地址中不合法的双斜杠 ‘//’
'http://www.baidau.com//sasd///da'.replace(/([^(http|https):\/\/])(\/\/*)/g,'$1/');
// "http://www.baidau.com/sasd/da" 合格

然而:

'http://www.baidau.com/htt///da'.replace(/([^(http|https):\/\/])(\/\/*)/g,'$1/');
//"http://www.baidau.com/htt///da"  失败

// 正确的姿势
'http://www.baidau.com/htt///da'.replace(/([^:\/\/])(\/\/*)/g,'$1/');

然而:

'http:www.baidau.com/htt///da'.replace(/([^:\/\/])(\/\/*)/g,'$1/');
//"http:www.baidau.com/htt/da" 失败

// 最终正确的姿势
'http:www.baidau.com/htt///da'.replace(/((http|https)(:\/+))|(\w\/+)/g,function(val){
 var reg = /\/+/g;
 var strRe = /(http|https):\/\//.test(val) ? '//' : '/';
 return val.replace(reg,strRe);
});
// "http://www.baidau.com/htt/da"  完美!!!

最后:大佬说太复杂,思考后的第3个月
我偶然得到了大佬的正则使用文档,然后灵感爆棚

=> 特别详细的正则使用手册

最完美的解决方法

'http://www.baidau.com//sasd///da'.replace(/(?<=\:\/.*)(\/\/*)/g, '/');
// "http://www.baidau.com/htt/da"  
正则验证是否全部是空白字符
/^\s*$/.test("  ") // true
/^\s*$/.test(" asasa ") // false
字符下划线转驼峰
toHump(string){
	return string.replace(/\_(\w)/g,function(all,letter){
		return letter.toUpperCase()
	})
}
toHump('a_b_c') //aBC
驼峰转换下划线
function toLine(string) {
  return string.replace(/([A-Z])/g,"_$1").toLowerCase();
}
toLine('nB') // n_b

参考地址

验证金额保留两位小数
1、只能正数金额:
//(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)
(^[1-9](\d+)?(\.\d{1,2})?$)  --> 
								"^[1-9]"开头是1-9之间的数字,
								"(\d+)"至少一个数字,
								"?"匹配0个或一个以上的结果
								"\." 小数点
								"\d"匹配数字
								"{1,2}" 最少一个,最多两个
								"?"匹配0个或一个以上的结果
								"$"结尾


/(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/.test('1.00') //true
/(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/.test('1.000') //false
/(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/.test('1a.00') //false
/(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/.test('1.0.0') //false
/(^[1-9](\d+)?(\.\d{1,2})?$)|(^0$)|(^\d\.\d{1,2}$)/.test('-1.00') //false
2、允许负数金额:
//(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)
(^[1-9](\d+)?(\.\d{1,2})?$)  --> 
								"^-?[1-9]"开头是1-9之间的数字 0个或者一个负号,
								"(\d+)"至少一个数字,
								"?"匹配0个或一个以上的结果
								"\." 小数点
								"\d"匹配数字
								"{1,2}" 最少一个,最多两个
								"?"匹配0个或一个以上的结果
								"$"结尾

/(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)/.test('1.00') //true
/(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)/.test('-1.00') //true
/(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)/.test('1.000') //false
/(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)/.test('1a.00') //false
/(^-?[1-9](\d+)?(\.\d{1,2})?$)|(^-?0$)|(^-?\d\.\d{1,2}$)/.test('1.0.0') //false

最完美的邮箱验证

/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@
((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

最完美的邮箱验证参考

国际手机号验证

 	CN("中国","^(\\+?0?86\\-?)?1[345789]\\d{9}$"),
    TW("台湾","^(\\+?886\\-?|0)?9\\d{8}$"),
    HK("香港","^(\\+?852\\-?)?[569]\\d{3}\\-?\\d{4}$"),
    MS("马来西亚","^(\\+?6?01){1}(([145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))$"),
    PH("菲律宾","^(\\+?0?63\\-?)?\\d{10}$"),
    TH("泰国","^(\\+?0?66\\-?)?\\d{10}$"),
    SG("新加坡","^(\\+?0?65\\-?)?\\d{10}$"),
    /* 以上是项目可能设计到的市场,一下是其他国家的手机号校验正则,欢迎补充*/
    DZ("阿尔及利亚", "^(\\+?213|0)(5|6|7)\\d{8}$"),
    SY("叙利亚","^(!?(\\+?963)|0)?9\\d{8}$"),
    SA("沙特阿拉伯","^(!?(\\+?966)|0)?5\\d{8}$"),
    US("美国","^(\\+?1)?[2-9]\\d{2}[2-9](?!11)\\d{6}$"),
    CZ("捷克共和国","^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$"),
    DE("德国","^(\\+?49[ \\.\\-])?([\\(]{1}[0-9]{1,6}[\\)])?([0-9 \\.\\-\\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$"),
    DK("丹麦","^(\\+?45)?(\\d{8})$"),
    GR("希腊","^(\\+?30)?(69\\d{8})$"),
    AU("澳大利亚","^(\\+?61|0)4\\d{8}$"),
    GB("英国","^(\\+?44|0)7\\d{9}$"),
    CA("加拿大","^(\\+?1)?[2-9]\\d{2}[2-9](?!11)\\d{6}$"),
    IN("印度","^(\\+?91|0)?[789]\\d{9}$"),
    NZ("新西兰","^(\\+?64|0)2\\d{7,9}$"),
    ZA("南非","^(\\+?27|0)\\d{9}$"),
    ZM("赞比亚","^(\\+?26)?09[567]\\d{7}$"),
    ES("西班牙","^(\\+?34)?(6\\d{1}|7[1234])\\d{7}$"),
    FI("芬兰","^(\\+?358|0)\\s?(4(0|1|2|4|5)?|50)\\s?(\\d\\s?){4,8}\\d$"),
    FR("法国","^(\\+?33|0)[67]\\d{8}$"),
    IL("以色列","^(\\+972|0)([23489]|5[0248]|77)[1-9]\\d{6}"),
    HU("匈牙利","^(\\+?36)(20|30|70)\\d{7}$"),
    IT("意大利","^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$"),
    JP("日本","^(\\+?81|0)\\d{1,4}[ \\-]?\\d{1,4}[ \\-]?\\d{4}$"),
    NO("挪威","^(\\+?47)?[49]\\d{7}$"),
    BE("比利时","^(\\+?32|0)4?\\d{8}$"),
    PL("波兰","^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$"),
    BR("巴西","^(\\+?55|0)\\-?[1-9]{2}\\-?[2-9]{1}\\d{3,4}\\-?\\d{4}$"),
    PT("葡萄牙","^(\\+?351)?9[1236]\\d{7}$"),
    RU("俄罗斯","^(\\+?7|8)?9\\d{9}$"),
    RS("塞尔维亚","^(\\+3816|06)[- \\d]{5,9}$"),
    R("土耳其","^(\\+?90|0)?5\\d{9}$"),
    VN("越南","^(\\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$");

国际手机号参考

不使用正则字符串去重

[].filter.call("abcdabecd", (s, i, o) => o.indexOf(s) == i).join("");

首字母转大写

var name = "JAMES";
// 将所有字符变成小写
name = name.toLowerCase();
// 提取首字母转换为大写并与其余的字母拼接起来(3种方法)
var name = name.charAt(0).toUpperCase() + name.slice(1);

var name = name.slice(0,1).toUpperCase() + name.slice(1);

var name = name.subString(0,1).toUpperCase() + name.subString(1);

上面代码参考
也可以使用 toLocalUpperCase(): toLocalUpperCase 参考链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值