2014-10-22 2 views
0

вот мой кодкод не работает, как букмарклет в хроме

function()({var dob=/\s*\d*\s*\.?\s*\d*\s*-\s*\d*\s*\.?\s*\d*\s*/; 

var x=prompt("Enter data","");if (x.test(dob)){var y=x.split("-"); 

alert(parseFloat(y[0])); 
alert(parseFloat(y[1]));} 
else{alert("Not Matched");}})(); 

он принимает входной диапазон, как a-b(example 4-5) и разделяет его значение a и b .if десятичные вводятся это показывает Not Matched .Это отлично работает в Jsfiddle, но не работает в chrome как bookmarklet.Пожалуйста, помогите

ответ

0

Похож, проблема связана с вашим регулярным выражением.

Вместо этого:

x.test(dob) 

Попробуйте это:

dob.test(x) 

Edit: Кроме того, вы пропустили начало открывающей скобкой '(' перед функцией

+0

благодаря его работал. , но что такое различие между этими двумя утверждениями. – Satya

+0

@Satya, когда вы создали переменную 'dob', вы создали ее как объект RegExp (вы можете увидеть это с помощью' typeof dob'). 'dob' теперь будет иметь метод 't est() ', и вы можете использовать его для тестирования RegExp. Проблема, которую вы имели, это переменная 'x', которая войдет в строку. Строка не имеет метода 'test()', поэтому она не будет работать. См. MDN для лучшего объяснения здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions – mark

+0

Спасибо вам большое. Посмотрите на это кодирование, пожалуйста [jsfiddle] (http:// /jsfiddle.net/xvgsg9yj/3/) .Почему часть else не работает? Пожалуйста, объясните мне.Again 'if (x.match (dob) [0] == null)' это тоже не работает.'Not Matched 'случай не работает ни в коем случае. Почему? – Satya

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