Если вы имеете в виду, как:
var elementArray = document.getElementsByName("/regexhere/");
тогда нет, это было бы невозможно.
Чтобы сделать то, что вы хотите, вам нужно получить все элементы, затем пройтись по каждому из них и проверить его название.
Вот функция, которая пройдет через все элементы и добавит все элементы с определенным именем в массив:
function findElements(name)
{
var elArray = [];
var tmp = document.getElementsByTagName("*");
var regex = new RegExp("(^|\\s)" + name + "(\\s|$)");
for ( var i = 0; i < tmp.length; i++ ) {
if ( regex.test(tmp[i].name) ) {
elArray.push(tmp[i]);
}
}
return elArray;
}
И использовать как:
var elName = "customcontrol";
var elArray = customcontrol(elName);
Или это может быть проще для className
function findElements(className)
{
var elArray = [];
var tmp = document.getElementsByTagName("*");
var regex = new RegExp("(^|\\s)" + className+ "(\\s|$)");
for ( var i = 0; i < tmp.length; i++ ) {
if ( regex.test(tmp[i].className) ) {
elArray.push(tmp[i]);
}
}
return elArray;
}
И использовать как:
var elClassName = "classname";
var elArray;
if (!document.getElementsByClassName)
{
elArray= findElements(elClassName );
}
else
{
elArray = document.getElementsByClassName(elClassName);
}
Это будет делать то, что вы хотите, без необходимости getElementByName.
Хотя я думаю, что вы имели в виду getElementsByName
Если вы хотите найти элемент только с именем «customcontrol», вы должны использовать:
var regex = new RegExp("(^|\\s)" + name + "(\\s|$)");
Если вы хотите найти элемент с STARTED с именем «customcontrol», вы должны использовать:
var regex = new RegExp("(^|\\s)" + name);
EDIT:
Если вы используете jQuery, что будет проще, то это будет делать:
var elArray = $("*[name^='customcontrol']");
//Use JavaScript to loop through
for (var a = 0; a< elArray.length;a++)
{
//Loop through each element
alert(elArray[a]);
}
//Or
$("*[name^='customcontrol']").css("color","red"); //Or whatever you want to do to the elements