JavaScript正则表达式和字符串RegExp and String(二)
1. RegExp 对象
RegExp 对象是 JavaScript 的内置对象,用于支持正则表达式。
1.1 RegExp 对象的创建
- 字面量方式:
var patt = /pattern/flags;
- 构造函数方式:
var patt = new RegExp(pattern, flags);
其中,pattern为正则表达式模式,flags为标志。常用的标志有:i - 忽略大小写;g - 全局匹配;m - 多行匹配。
1.2 运算符
- test() 方法:返回值为布尔类型,用于检测一个字符串是否匹配某个正则表达式。示例:
var patt = /e/;
patt.test("hello"); // true
- exec() 方法:返回值为数组,如果字符串与正则表达式匹配,则返回匹配的数组;否则返回 null。示例:
var patt = /a(b)c/;
var result = patt.exec("abcdefg");
console.log(result[0]); // abc
console.log(result[1]); // b
1.3 修饰符
正则表达式修饰符可以改变搜索模式。
常用的修饰符有:
- i:表示不区分大小写。
- g:表示查找所有匹配,而不仅仅查找第一个匹配。
- m:表示多行查找模式。
2. String 对象
String 对象用于处理字符串。
2.1 字符串方法
- search() 方法:用于检索字符串中指定的子字符串并返回子字符串的位置。示例:
var str = "Visit Javatpoint!";
var n = str.search(/javatpoint/i);
console.log(n); // 6
- match() 方法:用于在字符串中寻找一个或多个与正则表达式匹配的字符串,并返回一个包含匹配结果的数组。示例:
var str = "The rain in SPAIN stays mainly in the plain";
var patt = /ain/g;
var arr = str.match(patt);
console.log(arr); // ["ain", "ain", "ain"]
- replace() 方法:用于替换字符串中指定的子字符串。示例:
var str = "Hello World!";
var patt = /world/i;
var newstr = str.replace(patt, "JavaScript");
console.log(newstr); // "Hello JavaScript!"
2.2 转义字符
在正则表达式中,有一些字符有特殊含义,需要使用转义字符来匹配这些字符。
常用的转义字符有:
- \d:匹配数字。
- \D:匹配非数字字符。
- \w:匹配字母、数字和下划线。
- \W:匹配除了字母、数字和下划线以外的字符。
- \s:匹配空格、制表符和换行符。
- \S:匹配除了空格、制表符和换行符以外的字符。
3. 示例说明
3.1 验证手机号码
function validatePhone(number) {
var patt = /^1[3-9]\d{9}$/;
return patt.test(number);
}
- /^1[3-9]\d{9}$/:表示必须以数字1开头,第二位为3-9之间的数字,后面跟着9位数字。例如:13912345678。
3.2 格式化金额
function formatMoney(money) {
var str = money.toString();
var patt = /(\d)(?=(\d{3})+$)/g;
return str.replace(patt, "$1,");
}
- /(\d)(?=(\d{3})+$)/g:使用正则表达式匹配每三位数字,将它们的后面字符串替换成“,”。例如:formatMoney(123456789) 返回 123,456,789。
至此,我们已经了解了 JavaScript 正则表达式和字符串的基础知识。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript正则表达式和字符串RegExp and String(二) - Python技术站