这就是问题:我有一个带x元素的数组,每个元素都有一个字符,我需要一对一清楚每个元素,没有字符结束。
var dale = [".algo,", 'otro;', "two:", ", perfecto", "nada,", "bueno ,", "hola .", ". kcoy;", ", koko:", "noc'", " 'nocto", "lolo...", "...lola", "(jose", "luis)", "maria]", "[uranga", "signo?", "¿preg", "oki!", "¡com"];
var patterns = [".", ",", ";", ":", "'", "...", "(", ")", "[", "]", "?", "¿", "!", "¡" ];
var newDale = [];
//SOLUTIONS WRONG:
for ( var i=0; i<dale.length;i++){
for ( var x=0; x<patterns.length;x++){
if (dale[i].search(patterns[i])){
newDale.push(dale[i].replace(/patterns[i]/, ""));
}
}
}
console.log(newDale);
//OUTPUT CLEAN
["algo", 'otro', "two", "perfecto", "nada", "bueno", "hola", "kcoy", "koko", "noc", " 'nocto", "lolo", "lola", "jose", "luis", "maria", "uranga", "signo", "preg", "oki", "com"]
答案 0 :(得分:2)
我建议使用RegExp
对象来替换字符串。看起来你只想要单词字符(字母),对吗?也许是这样的:
for (var i=0; i < dale.length; i++){
newDale.push(dale[i].replace(/\W/g, ""));
}
参考文献:
http://www.w3schools.com/jsref/jsref_obj_regexp.asp(\ W是非单词字符,g修饰符是全局字符)
答案 1 :(得分:0)
为什么不是这样的?
var dale = [".algo,", 'otro;', "two:", ", perfecto", "nada,", "bueno ,", "hola .", ". kcoy;", ", koko:", "noc'", " 'nocto", "lolo...", "...lola", "(jose", "luis)", "maria]", "[uranga", "signo?", "¿preg", "oki!", "¡com"];
for (var i = 0; i < dale.length; i++) {
console.log(dale[i].replace(/[.,;:;()\[\]?¿!¡ ']/g, ""));
}