обратная ссылка регулярного выражения JavaScript

Это продолжение регулярного выражения php: номер телефона от 7 до 12 цифр может содержать дефис или пробел

Я все еще пытаюсь понять обратные ссылки. Ниже приведен код JavaScript, который я придумал для проверки обратных ссылок. Когда я запускаю этот код, выводится только null. Где я ошибаюсь?

<script type="text/javascript">
function myRegexFunc()
{   myString="abcabcxabcdefghi";
    patt1=new RegExp("(abc)?\1x\1");
    document.write(patt1.exec(myString));
}
</script>
</head>

<body onload="myRegexFunc()">
</body>

person vaanipala    schedule 05.10.2012    source источник


Ответы (1)


Вам нужно избежать \ в строке.

patt1 = new RegExp("(abc)?\\1x\\1");

Или вы можете использовать литерал регулярного выражения:

patt1 = /(abc)?\1x\1/;
person xdazz    schedule 05.10.2012
comment
Можете ли вы сказать, почему запятая следует за abc? Я думал, что результат должен быть только abcabccxabc. Спасибо. - person vaanipala; 05.10.2012
comment
@vaanipala, потому что результатом является массив. - person xdazz; 06.10.2012
comment
Но для этого должен быть только один матч. Я до сих пор не понимаю насчет второго abc в выводе. Пожалуйста помоги. - person vaanipala; 08.10.2012