javascriptを使用してカッコを一致させる
1500 ワード
<html>
<head> </head>
<script type="text/javascript">
function isBalanced(obj){//
var leftNormal = '(';
var rightNormal = ')';
var leftCurly = '{';
var rightCurly = '}';
var leftSquare = '[';
var rightSquare = ']';
var data = [];
var flag = false;
var text = obj.innerText || obj.innerHTML || obj.value;
for(var i = 0 ; !flag && i < text.length ; i++){
switch(text.charAt(i)){
case leftNormal:
case leftCurly:
case leftSquare:
data.push(text.charAt(i));
break;
case rightNormal:
if(data.length == 0 || data.pop() != leftNormal)
flag = true;
break;
case rightCurly:
if(data.length == 0 || data.pop() != leftCurly)
flag = true;
break;
case rightSquare:
if(data.length == 0 || data.pop() != leftSquare)
flag = true;
break;
}
}
//return data.length == 0 && !flag;
alert(data.length == 0 && !flag);
}
</script>
<body>
<textarea id="text" cols="30" rows="6" onchange="isBalanced(this)" ></textarea>
</body>
</html>