JavaScript 正则怎么用

在做网页的搜索功能时,你可能遇到过这种麻烦:用户输入手机号,不小心多打了个空格;或者填邮箱,随手敲了个“@”符号错位置。要是靠程序员逐行写代码判断,不仅慢,还容易漏。这时候,JavaScript里的正则表达式就能派上大用场,它就像个“智能筛选器”,能快速帮你找出符合规则的文本。

先搞懂:正则是什么?

简单说,正则就是用一串固定的“规则代码”,告诉计算机“什么样的文本是对的”。举个生活化的例子:你去超市找“带包装的纯牛奶”,“带包装+纯牛奶”就是你定的规则,正则就是把这个规则翻译成计算机能懂的语言。

JavaScript 正则怎么用

在JavaScript里,有两种常用写法,就像两种打开方式:一种是用两个斜杠包起来,比如/13[0-9]{9}/,适合规则固定不变的情况;另一种是用RegExp对象写,比如new RegExp("13[0-9]{9}"),适合规则需要临时组合的场景。

最常用的3种场景,跟着例子学

验证用户输入(最常用)

网页的登录、注册页都要验证手机号、邮箱,这是正则用得最多的地方。比如判断手机号是否合法:国内手机号开头是13、15、17、18、19,后面跟着9个数字,规则就是“1开头,第二位是3/5/7/8/9,再跟9个数字”。

用JavaScript写代码:

`javascript

// 定义手机号规则:1开头,第二位是3/5/7/8/9,后面9个数字

const phoneReg = /^1[3-9]\d{9}$/;

// 测试用户输入的手机号

const userInput = "13812345678";

console.log(phoneReg.test(userInput)); // 输出true,符合规则

`

这里的test()方法就是用来“查一查是否符合规则”,返回布尔值,符合就是true,不符合就是false。

替换文本(改内容)

有时候需要把网页里的敏感词、多余空格改掉,比如把所有“菜鸟”替换成“***”,或者把用户输入的多余空格删掉。比如替换所有空格:

`javascript

const text = "我 爱 学 JavaScript";

// 把所有空格替换成空字符串

const newText = text.replace(/\s/g, "");

console.log(newText); // 输出"我爱学JavaScript"

`

这里的\s代表空格,g是全局标记(global),意思是“把所有空格都换掉,不是只换第一个”。

提取内容(找特定部分)

如果你想从一串文本里提取所有的数字,比如从“订单号:12345,金额:678元”里把12345和678挑出来,正则也能搞定。用match()方法就能提取:

`javascript

const content = "订单号:12345,金额:678元";

// 匹配所有数字

const numbers = content.match(/\d+/g);

console.log(numbers); // 输出["12345", "678"]

`

这里的\d代表数字,+的意思是“匹配一个或多个连续的数字”,g还是全局标记,把所有数字都找出来。

新手要注意的小细节

第一个是开头结尾的^和$,刚才的手机号规则里有这两个符号,要是没写^和$,比如/1[3-9]\d{9}/,那用户输入“abc13812345678”也会被判断成合法,因为它包含符合规则的部分,而^代表“从开头开始匹配”,$代表“到结尾结束”,这样就能保证整个输入都是符合规则的。

第二个是转义字符,要是想匹配“.”“*”这些特殊符号,得在前面加反斜杠,比如匹配网址里的“.”,要写成\.,不然正则会把它当成“任意字符”。

其实不用怕正则复杂,先从验证手机号、邮箱这些常用的规则练手,慢慢就能掌握它的用法。

上一篇 Java 内存溢出怎么解决