1, 在字符中查找第一次出现且不重复的字符
不是很难直接上代码第一种方法
/**
- [findFirstNoRepeatChar description]
- 找到字符串中第一个出现且不重复的字符的位置
- @param {[string]} str [字符串]
- @return {[type]} [description]
*/
function findFirstNoRepeatChar(str) {
var strObj,
i,
temp,
index;
if (typeof str !== "string") {
return;
}
strObj = {};
for (i = str.length - 1; i >= 0; i--) {
if (!strObj[str[i]]) {
strObj[str[i]] = 1;
}else {
strObj[str[i]]++;
}
}
index = str.length - 1;
for (var key1 in strObj) {
if (strObj[key1] === 1) {
temp = str.indexOf(key1);
}
if (temp < index) {
index = temp;
}
}
if (index === str.length - 1) {
console.log("没有不重复的字符");
}else {
return index;
}
}
第二种方法: 利用正则查找
function checkFirstChar(str,char) {
var reg,
regModel;
reg = "[^" + char + "]*";
regModel = new RegExp('^' + reg + char + reg + '$');
return regModel.test(str);
}
function findFirstNoRepeatChar(str) {
var i;
if (typeof str !== "string") {
console.log("不是字符串");
return;
}
for (i = 0; i < str.length; i++) {
if (checkFirstChar(str, str[i])) {
return str[i];
}
}
}