在Javascript中检测字符串中的重复字母
Detect repeating letter in an string in Javascript
用于检测字符串中重复字母的代码。
var str="paraven4sr";
var hasDuplicates = (/([a-zA-Z])'1+$/).test(str)
alert("repeating string "+hasDuplicates);
我得到"false"作为上面字符串"paraven4sr"的输出。但这段代码对于"paraaven4sr"这样的字符串是正确的我的意思是,如果字符连续重复,代码输出为"TRUE"。如何重写此代码,以便在字符串
JSFIDDLE
var str="paraven4sr";
var hasDuplicates = (/([a-zA-Z]).*?'1/).test(str)
alert("repeating string "+hasDuplicates);
/([a-zA-Z])'1+$/
正在查找的正则表达式:
([a-zA-Z]])
——它在第一组中捕获的一个字母;那么'1+
——紧随其后的是该信件的一份或多份副本;那么$
—字符串的末尾
改为/([a-zA-Z]).*?'1/
搜索:
([a-zA-Z])
——它在第一组中捕获的一个字母;那么.*?
-零个或多个字符(?
表示尽可能少的字符);直到'1
-它找到第一个匹配字符的重复
如果您要求第二个匹配必须在字符串的末尾,那么您可以将$
添加到正则表达式的末尾,但从您想要的文本描述来看,这似乎没有必要。
试试这个:
var str = "paraven4sr";
function checkDuplicate(str){
for(var i = 0; i < str.length; i++){
var re = new RegExp("[^"+ str[i] +"]","g");
if(str.replace(re, "").length >= 2){
return true;
}
}
return false;
}
alert(checkDuplicate(str));
这是jsfiddle
只测试重复的字母数字字符(包括下划线_
):
console.log(/('w)'1+/.test('aab'));
类似的东西?
String.prototype.count=function(s1) {
return (this.length - this.replace(new RegExp(s1,"g"), '').length) / s1.length;
}
"aab".count("a") > 1
编辑:很抱歉,请注意,您不是在搜索一个函数来查找一封信是否被多次找到,而是在搜索一封信是不是重复。不管怎样,我把这个功能留在这里,也许它会有所帮助。对不起;)
相关文章:
- 将DOM节点值与字符串Javascript进行比较
- 到UpperCase字符串Javascript中的特定字符索引
- 替换字符串javascript中的所有特殊字符..
- 在数组中查找某些字符串(Javascript)
- 解析特定的字符串Javascript(Node.js)
- 从字符串 JavaScript 中过滤多个正则表达式
- 在字符串 JavaScript 中使用正则表达式替换
- 忽略字符串javascript中的字符
- 如何检查url是否包含多个字符串.Javascript/jquery
- 截断字符串JavaScript
- 计算字符串javascript中的某些单词
- 从'获取本月的最后一天;2015-02-23'字符串(javascript)
- 从字符串javascript中获取键值对
- 从路径字符串 - Javascript 获取所有父路径
- 在字符串Javascript中查找丢失的字母
- AngularJS:如何使所有ng模型都是字符串.JavaScript和长整数
- 将浮点转换为至少有一个小数点的字符串(javascript)
- 替换字符串 JavaScript 中的多个文本
- 检查另一个字符串 JavaScript 中一个字符串是否有任何字符的最佳方法
- 将变量的值包含在 href 字符串 javascript 中