하나의 classname을 다른 class로 대체하는 javascript 함수를 생성하려고합니다. 내가대괄호 안에 Javaxcript 정규식 메타 문자가 작동하지 않습니까?
<div class="one" onclick="foo(this)"></div>
같은 마크 업에
function foo(bar)
{
bar.className=bar.className.replace(/\bone/, "two");
}
같은 기능을 사용할 때 제대로 찾아 two
와 one
을 대체합니다. 그러나 괄호를 사용하여 one
앞에 올 수있는 다른 문자를 포함하는 경우 \b
은 문자열의 시작을 인식하지 못하고 일치하는 항목을 제공하지 않습니다. 예 :
function foo(bar)
{
bar.className=bar.className.replace(/[\b\s]one/, "two");
}
이 작동하지 않습니다. 심지어 /[\b]one/
도 작동하지 않습니다.
실제 작동 상태를 보려면 http://jsfiddle.net/E4ph5/을 참조하십시오. 내가 도대체 뭘 잘못하고있는 겁니까? (피들에서 대괄호를 제거하면 스크립트가 제대로 작동합니다.)
그냥'\ b'을 사용하는 것이 좋은 점, 나는 그 사실을 알아 차리지 못했습니다. –