Javascript 使用字符串时出错。搜索(“sinh(2”):“无效的正则表达式”

Javascript 使用字符串时出错。搜索(“sinh(2”):“无效的正则表达式”,javascript,syntax-error,Javascript,Syntax Error,我的问题如下: var test = $("#k_w").val().search("sinh("+parseFloat(sinh_array[i])); 调试器显示错误:未捕获的语法错误:无效的正则表达式:/sinh2/:未终止的组 sinh_数组[i]是数字 怎么了?正则表达式中有一个左括号,但没有右括号 我想你真正想要的是: var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]) + "\\)"); 我

我的问题如下:

var test = $("#k_w").val().search("sinh("+parseFloat(sinh_array[i]));
调试器显示错误:未捕获的语法错误:无效的正则表达式:/sinh2/:未终止的组

sinh_数组[i]是数字


怎么了?

正则表达式中有一个左括号,但没有右括号

我想你真正想要的是:

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]) + "\\)");

我怀疑您想匹配实际参数,而不是创建一个组。

您的正则表达式中有一个左括号,但没有右括号

我想你真正想要的是:

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]) + "\\)");

我怀疑您希望匹配实际的参数,而不是创建一个组。

您必须在regexp中转义括号;否则,它们将开始匹配组,因此必须再次关闭

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]));

必须对regexp中的括号进行转义;否则,它们将开始一个匹配组,因此必须再次关闭

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]));
该方法将第一个参数转换为正则表达式

您正在寻找一个方法,该方法在不转换为RegExp的情况下搜索字符串

var test = $("#k_w").val().indexOf("sinh("+parseFloat(sinh_array[i]));
//                         ^^^^^^^ indexOf
该方法将第一个参数转换为正则表达式

您正在寻找一个方法,该方法在不转换为RegExp的情况下搜索字符串

var test = $("#k_w").val().indexOf("sinh("+parseFloat(sinh_array[i]));
//                         ^^^^^^^ indexOf

在字符串文字中,需要双反斜杠来转义特殊的正则表达式字符(如括号)。仅适用于其他控制字符。RegExpsinh \->SyntaxError:unterminated Parentional。它应该是sinh\,与接受的答案一样。在字符串文字中,需要双反斜杠来转义特殊正则表达式字符字符,如括号。仅适用于其他控制字符。RegExpsinh \->SyntaxError:unterminated insertional。它应为sinh \,如接受的答案中所示。