2015-06-17 4 views
-2

У меня есть метод, возвращающий мне строку, которая может содержать числа. Я извлекаю эти числа в строку с разделенным запятой значением.Проверьте, имеет ли строка число больше 1

var stringOne = "Returned 12 string"; 
var extractNum = "1,2" 

Теперь я хочу проверить эту строку на регулярное выражение, которое проверяет, имеет ли строка число больше 1? Я пробовал несколько вещей, но никто, кажется, не работает. Пожалуйста, предложите способ его достижения. Заранее спасибо!

+0

Так что вы хотите увидеть на 'extractNum', если он имеет числа больше 1? И что ты пробовал? – putvande

+3

Просто, чтобы убедиться: вы имеете в виду «цифры», а не «цифры»? Должно ли '' 10 "' соответствовать или нет? –

+0

@putvande, справа. –

ответ

3

Если вы просто хотите проверить, если ваш экстракт Струнного containt числа больше 1, вы можете попробовать ниже код

function check() { 
     var str = "1,1,1,1,2,1,1"; 
     var patt = new RegExp("[2-9]"); 
     return patt.test(str); // true 
    } 
0

В идеале вы должны проанализировать число и использовать фактические числовые операторы, предоставляемые Javascript, для этого.

Если вы действительно должны сделать это с помощью обычного выражения, вы можете использовать что-то вроде этого: ^[2-9]|\d{2,}$. Это будет проверять, что номер является либо одной цифрой от 2 до 9, либо цифрой, состоящей из двух или более цифр.

1

Вы можете сделать следующее:

var extractNum = "1,2"; 
var hasGreaterThan1 = extractNum.split(',').some(function(val) { return val > 1; }) 

См документация Array.prototype.some

0

«ok» будет истинным, если любое число больше 1;

var stringOne = "Returned 12 string"; 
var extractNum = "1,2" 
var ok = haveNrBiggerThan1(extractNum); 

function haveNrBiggerThan1(str){ 
    var nums = str.split(","); 
    for(var i=0; i<nums.length; i++){var n=parseInt(nums[i]); if(n>1){return true;}} 
    return false; 
} 
+0

черт возьми, вы избили меня на 20 секунд: p – moffeltje

2

var matched = "Returned 12 string".match(/[2-9]/g) 
 

 
if (matched !== null) { 
 
    alert(matched.join(',')); 
 
} else { 
 
// No match 
 
}

0

без использования регулярных выражений

extractNum.split(',').map(function(a){return parseInt(a)>1}) 
Смежные вопросы