2016-10-31 5 views

ответ

3

Вы могли бы решить, что с регулярным выражением:

function match(input) { 
 
    var regex = /([,\.\:!\?])/; 
 
    var matches = input.match(regex); 
 
    return matches ? matches[0] : false; 
 
} 
 

 
console.log(match("foo?")); // "?" 
 
console.log(match("bar.")); // "." 
 
console.log(match("foobar")); // false

+1

Ударьте меня тоже, что почти точная функция :( – TheValyreanGroup

2

Вот пример функции

var checkSigns = function(str) { 
    var signs = [",",".",":","!","?"]; 

    for (var i = 0; i < signs.length; i++) { 
     if (str.indexOf[signs[i]] !== -1) { 
      return signs[i]; 
     } 
    } 
}; 
1

Вы можете использовать filter() и indexOf() и возвращать массив знаков, которые находятся в строке.

var signs = [",",".",":","!","?"]; 
 
function check(str, arr) { 
 
    return arr.filter(function(e) { 
 
    return str.indexOf(e) != -1 
 
    }) 
 
} 
 

 
console.log(check("But,", signs)) 
 
console.log(check("Finished.", signs))

1

Попробуйте этот прототип str.hasSign();sign возврат, если содержит или false, если нет.

String.prototype.hasSigns = function() { 
 
    var signs = [",", ".", ":", "!", "?"]; 
 
    for (var i = 0; i < signs.length; i++) { 
 
    if (this.indexOf(signs[i]) > -1) return signs[i]; 
 
    } 
 
    return false; 
 
} 
 

 
console.log("football, basketball".hasSigns()); 
 

 
console.log("1-3".hasSigns()); 
 

 
console.log("Good!".hasSigns());

Смежные вопросы