正则表达式(Regular Expression,简称regex)是一种用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式通过RegExp
对象来表示,并且可以通过test()
方法来判断一个字符串是否符合某个模式。
应用场景包括但不限于:
以下是一个使用JavaScript正则表达式来判断字符串中是否存在相同字符的示例代码:
function hasDuplicateChars(str) {
// 创建一个正则表达式,用于匹配任意字符重复两次的情况
const regex = /(.)\1/;
// 使用test方法检查字符串是否符合正则表达式模式
return regex.test(str);
}
// 测试示例
console.log(hasDuplicateChars("hello")); // 输出:true,因为存在两个"l"
console.log(hasDuplicateChars("world")); // 输出:false,没有重复字符
问题:为什么上述代码能够判断字符串中是否存在相同字符?
原因:
(.)
表示匹配任意单个字符,并将其捕获到一个分组中。\1
表示引用第一个捕获分组中的内容,即与前面匹配到的那个字符相同的内容。(.)\1
这个模式会匹配到任何连续出现两次的相同字符。解决方法:
(.)\1{2}
。i
标志,如 /i(.*?)\1/
。领取专属 10元无门槛券
手把手带您无忧上云