Для вашей первой проблемы,
var str = "chr22:213243007-213243247";
var result = /chr(\w*):(\d*)-(\d*)/.exec(str);
if(result)
{
alert(result[1]) // 22
alert(result[2]) // 213243007
alert(result[3]) // 213243247
}
else
{
// User entered invalid string
alert("Invalid input");
}
Если вам не нужны result[2]
и result[3]
, просто проигнорируйте их.
Я посмотрел вторую часть вашего вопроса(надеюсь, я правильно понял), и большинство раскрывающихся списков на странице выглядят так:
<select name="ct_HS1329dpwgchrchr17duplicatesstandardlentriangle_5941" class="hiddenText" style="width: 70px">
<option selected="">hide</option>
<option>dense</option>
<option>full</option>
</select>
Теперь мы можем использовать следующий код, чтобы получить вышеуказанный элемент select
и установитьвыбрана опция 'full': (Edit: добавлен обходной путь, поскольку полное имя элемента не может быть предсказано)
// Convert "chr17_duplicates_standard_len_triangle" to "chr17duplicatesstandardlentriangle"
var selectText = "chr17_duplicates_standard_len_triangle";
var selectName = selectText.replace(/_/g, "");
// Find the element that contains "chr17duplicatesstandardlentriangle" in
// it's name.
var selectElements = document.getElementsByTagName("select");
for(var i=0;i<selectElements.length;i++)
{
var ele = selectElements[i];
var name = ele.name;
if(name.indexOf(selectName)!==-1)
{
ele.selectedIndex = 2;
break;
}
}
Мне не нравится это решение, поскольку оно включает в себя циклическое прохождение всех элементов select встраница, когда вам нужен только один.Если кто-то знает лучшее решение, пожалуйста, скажите мне.
Надеюсь, что ответ на ваш вопрос!