Если вы можете просто изменить значение href
, вы должны использовать:
<a href="javascript:void(0);">Link Title</a>
Еще одно опрятное решение, с которым я только что придумал, - это использовать jQuery, чтобы остановить действие click. страницы для прокрутки, но только для ссылок href="#"
.
<script type="text/javascript">
/* Stop page jumping when links are pressed */
$('a[href="#"]').live("click", function(e) {
return false; // prevent default click action from happening!
e.preventDefault(); // same thing as above
});
</script>
Самый простой способ сделать это - проанализировать строку как число и найти число в правильном диапазоне.
Чтобы сделать это с чистым регулярным выражением, вам нужно определить шаблон и запишите его:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
У него есть три альтернативы: одна для одно- и двузначных чисел (разрешая ведущие нули), где каждая цифра может быть от 0 до 9. И еще одна, определяющая диапазон цифр. разрешено для каждой цифры в трехзначном числе. В данном случае это означает, что первая цифра должна быть 1, вторая от 0 до 7, а последняя может быть чем угодно. Третья альтернатива предназначена только для числа 180, которое не вписывалось в шаблон в другом месте.
Более простой подход мог бы быть
^(0{0,2}[0-9]|0?[1-9][0-9]|1[0-7][0-9]|180)$
, который просто чередуется для каждого сложного числового диапазона, который может быть.
Я не думаю, что регулярное выражение - правильный выбор для этого. Вы пробовали разобрать значение? Если вам нужно использовать регулярное выражение, я бы сопоставил \ d {1,3}
, проанализировал строку, а затем подтвердил число в коде.
Мои два цента:
Любой, кто отправляет ответ на этот вопрос , должен был протестировать свое регулярное выражение , по крайней мере, со следующими входными данными:
Должно совпадать: 0, 00, 000, 5, 05, 005, 95, 095, 180
НЕ ДОЛЖНЫ совпадать: 0000, 0095, 181, 190
Я думаю, что то, что написал Йоханнес Рёссель, примерно так же хорошо, как и вы:
^(0?[0-9]{1,2}|1[0-7][0-9]|180)$
Попробуйте следующее:
^(0|[1-9][0-9]?|1[0-7][0-9]|180)$
Я бы разбил диапазоны, чтобы его можно легко указать в отдельном регулярном выражении:
^ (0 | 0 [0-9] [0-9] | 1 [0-7] [0-9] | 180) $
Или, что то же самое в удобочитаемых терминах:
0 000-099 100-179 180
Если вам нужен диапазон из двух цифр, достаточно добавить [0-9] [0-9]
в регулярное выражение.
Кроме того, если у вас проблемы с регулярным выражением,
, если вас не интересуют отрицательные числа
>> r = /\b(0?\d?\d|1[0-7]\d|180)\b/
=> /\b(0?\d?\d|1[0-7]\d|180)\b/
>> (0..200).map {|i| i.to_s =~ r }
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
>>
Я модифицировал Гамбо:
^(00?0?|0?[1-9][0-9]?|1[0-7][0-9]|180)$
Попробуй.