Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要用户输入的特定部分_Javascript_Regex_Input_Parentheses - Fatal编程技术网

Javascript 需要用户输入的特定部分

Javascript 需要用户输入的特定部分,javascript,regex,input,parentheses,Javascript,Regex,Input,Parentheses,看来我需要一个与 var inPar = userIn.substring(userArray.lastIndexOf("(")+2, userArray.lastIndexOf(")")+2); …当用户输入化学式Cu(NO3)2时,返回NO3) 当前代码(上面)根本不是动态的,因为如果用户输入,它还必须返回NO3),比如H(NO3)2或只是(NO3)2 我认为正则表达式是实现这一点最有效的方法?这段代码也应该这样做: var inPar = userIn.replace(/^.*\((.*

看来我需要一个与

var inPar = userIn.substring(userArray.lastIndexOf("(")+2, userArray.lastIndexOf(")")+2);
…当用户输入化学式Cu(NO3)2时,返回NO3)

当前代码(上面)根本不是动态的,因为如果用户输入,它还必须返回NO3),比如H(NO3)2或只是(NO3)2


我认为正则表达式是实现这一点最有效的方法?

这段代码也应该这样做:

var inPar = userIn.replace(/^.*\((.*\)).*$/, '$1');

我对化学公式不太了解,所以我不知道更具动态性的方法应该是什么样子。抱歉。

视情况而定。用户可以输入的化合物范围是多少?任何东西为什么要在结果中使用括号呢?现在,是的,他们可以输入任何内容,尽管我的代码目前只适用于一组括号。我想要括号,因为我有“)”表示while语句的结束,而while语句又用()表示所有内容的权重。如果您所寻找的只是“妄想症内部的某些东西”,那么Mixthos的代码是有效的。为什么不
/\(.*)/
?无需从头到尾搜索。而且,
replace
似乎是一种奇怪的方法。为什么不
/\(.*)/.exec(userIn)[1]
?String.replace将替换给定模式的所有匹配项。为了从结果中移除括号之外的部分,你必须匹配它们。@ RyGH2014,我不知道“是”如何表示程序中的while语句结束,但也许你应该考虑重构它以避免这种吉吉克斯坦方法。此外,编辑Mixthos的帖子还包括了妄想症。@LonelyWebCrawler:你说得对,exec是更好的方法。