如何检查字符串中特定位置的括号?

时间:2017-09-11 11:50:37

标签: javascript string brackets

我有这个代码,它需要根据你给它的字符串返回true或false。 这是它不起作用的唯一例子。如何检查字符串的特定索引中是否存在括号?

function telephoneCheck(str) {

var newStr = str.replace(/-/g,'').replace(/ /g,'').replace(/\(|\)/g,'');
var valid = true;
var re = /\([^()]*\)/g;
while (str.match(re))
    str = str.replace(re, '');
if (str.match(/[()]/)){
  valid = false;
}
if(newStr.length === 10 && valid === true && str.indexOf()){
  return true;
}else if(newStr.length === 11 && str[0] != "-" && newStr[0] == 1 && valid === true){
  return true;
}else{
  return false;
}
}

telephoneCheck("(6505552368)");

2 个答案:

答案 0 :(得分:0)

根据您的代码,我认为您可能正在寻找类似的内容:

'(6505552368)'.replace(/^\((\d+)\)$/, '$1');

RegExp中的^$将匹配字符串的开头和结尾。 \d+将匹配一个或多个数字。额外的括号形成一个捕获组,然后在替换中用作$1

使用RegExps做更多的工作可能会更好,而不是做所有的更换,但不知道确切的要求,很难更精确。我强烈建议您更多地了解RegExp语法。

如果您只是想知道特定索引中是否存在'括号,那么您可以使用:

str.charAt(index) === '(';

答案 1 :(得分:0)

检查字符串中特定索引是否有括号:

<div class="row"> <div class="col-md-12 board"> <!-- <h2>Welcome to IGHALO!<sup>™</sup></h2>--> <div class="board-inner"> <ul class="nav nav-tabs" id="myTab"> <div class="liner"></div> <li class="active"> <a href="#" aria-controls="home" id="DivPatientDetails" name="PatientDetails" > <span class="round-tabs one"> <i class="icon icon-profile-male"></i>01 </span> </a> </li> <li> <a href="#" aria-controls="profile" id="DivPatientEligibility" name="PatientEligibility" class="disabled"> <span class="round-tabs two"> <i class="icon icon-pencil"></i>02 </span> </a> </li> <li> <a href="#" aria-controls="prototyping" id="DivPatientDeclaration" name="PatientDeclaration" class="disabled"> <span class="round-tabs three"> <i class="icon icon-layers"></i>03 </span> </a> </li> </ul> </div> </div>

检查字符串中是否有任何括号:

/[()]/.test(str[index])

如果您想测试特定的括号类型(例如,打开但不关闭),请从正则表达式中删除另一个(例如,关闭)。