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>