网站推荐:
-
构造正则表达式http://www.regexr.com/
-
正则表达式在线测试https://regexper.com/
-
正则表达式在线测试及常用正则表达式https://c.runoob.com/front-end/854
把字符串中的下划线 "_",替换成空格
str = str.replace(/_/g," ");
在大写字母之前添加空格
str = str.replace(/([A-Z])/g," $1"); //小括号表示分组,$1 表示第1个小括号捕获内容
去掉语句开头的空格
str = str.replace(/^\s/,""); //"^" 表示语句开头, "\s" 表示空白符
把所有空白符替换为连接符 "-"
str = str.replace(/\s+/g,"-");
句子中的每个单词首字母大写,其余小写
var expression = /\w\S*/g; //匹配每一个单词
return str.replace(expression, function(word){
return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
});
检查是否有连续的字符
if(!(/([a-zA-Z])\1+/).test(str)){
noDupes += 1; //如果字符串str中不存在连续字母,则变量noDupes加1
}
/([a-zA-Z])\1+/
[a-zA-Z]
表示任意一个字母\1
与()
配合使用,是后向引用
,表示表达式中,从左往右数,第一个左括号对应的括号内的内容。以此类推,\2
表示第二个,\0
表示整个表达式
忽略句子中的空格、标点符号
var str = str.replace(/[^A-Za-z0-9]/g, ""); //只保留字母数字,去除标点和空格, ^ 这个字符是在中括号[]中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。
var expression = /[\s\[\]\?\.\!\-\;\,\:\'\"\_\(\)\/]+/g; //正则表达式匹配所有标点符号和空格
匹配美国电话号码
美国电话号码格式如下:
555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555
function telephoneCheck(str) {
var phone = /^1? ?(\d{3}|\(\d{3}\))[ -]?\d{3}[ -]?\d{4}$/;
return phone.test(str);
}
^
匹配开头,?
表示重复前面内容的0次或一次,^1?
匹配开头为1或者没有1?
匹配有空格或无空格\d
表示匹配任何数字,\d\d\d
表示匹配一行中任何3位数字,也可以用\d{3}
表示\(\d{3}\)
表示匹配(三位数字)(\d{3}|\(\d{3}\))
表示匹配 三位数字或(三位数字)方括号
匹配任何一个内部的令牌,但只有一个,比如[abc]
将匹配a
,b
或c
,但不能将两个或三个匹配在一起。[ -]?
表示匹配空格
或-
之一,或什么都没有- 在正则表达式的末尾附加一个美元符号
$
,希望这些最后一位数字是比赛的结尾,它与最初放置的^符号相似