JS判断字符串小括号是否成对合法

一、思路

  1. 要判断()是否成对;
  2. 运用栈的“后进先出“ 的特点,定义一个空数组,作为栈;
  3. for循环遍历字符串,当遇到“(”的时候就把“(”添加到空数组最顶端,push方法,记录发现一个左括号;
  4. 当遇到“)”就把数组中最顶端的元素弹出来,pop方法,抵消一个左括号。注意如果此时数组是空的,但是遇到“)”说明没有“(”缺少成对的“)”,则返回false;
  5. 不是括号的字符就不用考虑,让for循环继续执行,continue。
  6. 遍历完成后,判断栈是否为空。如果为空则表明左右括号数量刚好抵消,则返回true,否则返回false。

二、代码

function is_leagl_brackets(string) {
  var array = [];
  for (var i = 0; i < string.length; i++) {
    var item = string[i];
    if (item === "(") {
      array.push("(");
    } else if (item === ")") {
      if (array.length === 0) {
        return false;
      } else {
        array.pop();
      }
    } else {
      continue;
    }
  };
  return array.length === 0;
};

console.log("(asd):", is_leagl_brackets("(asd)"));
console.log("asd(asd(adsfsdf(asdf())))):", is_leagl_brackets("asd(asd(adsfsdf(asdf()))))"));

三、查看结果

  

原文地址:https://www.cnblogs.com/hcxwd/p/10420835.html

时间: 2025-01-04 16:59:02

JS判断字符串小括号是否成对合法的相关文章

JS判断字符串长度

这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(

JS判断字符串长度的5个方法

主要介绍JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下:String.prototype.gblen = function() {    var len = 0;    for (var i=0; i<this.length; i++) {      if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {         len += 2

js判断字符串是否全为空(使用trim函数/正则表达式)

我们需要判断用户输入的是否全是空格,可以使用以下方法: 方法一: 使用trim() /* 使用String.trim()函数,来判断字符串是否全为空*/ function kongge1(test) { let str = test.trim(); if (str.length == 0) { console.log('字符串全是空格'); } else { console.log('输入的字符串为:' + test); } } 如果 trim() 不存在,可以在所有代码前执行下面代码 /* 给

JS判断字符串中,某个字符出现的次数

/**   * JS判断字符串中,某个字符出现的次数   */     var str ="abc#def#hig";     var len =str.split("#").length-1     alert(len);

js 判断字符串是否包含某字符串

js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf var test= "aa"; if(test.indexOf("a") > 0 ) { } indexOf用法: 返回 String 对象内第一次出现子字符串的字符位置. strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项.String 对象或文字. subString 必选项.要在 String 对象中查找的子字符串. s

js判断字符串是否有下划线

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js判断字符串是否有下划线</title> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> </head> <

JS判断字符串是否为空、过滤空格、查找字符串位置等函数集

这是一个由网上收集的JS代码段,用于判断指定字符串是否为空,过滤字符串中某字符两边的空格.查找指定字符串开始的位置.使用IsFloat函数判断一 个字符串是否由数字(int or long or float)组成.IsDigital函数判断一个字符串是否由数字(int or long)组成等功能: //IsEmpty函数判断一个字符串是否为空 function IsEmpty(his) { flag = true; for(var i=0;i<his.length;i++) { if(his.c

js判断字符串中的英文和汉字

有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法. 方法一 正则表达式,test()方法返回true 或 false. function checkCh(str){ var RegExp = new RegExp('[\\u4E00-\\u9FFF]','g'); return RegExp.test(str); } 方法二 通过检测字符的unicode编码,编码大于255的即为汉字,下面函数检测字符

JS判断字符串长度(中文长度为2,英文长度为1)

目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } 方法二: function strlen(str){