我想输入一个数字来查找,因此regexp模式必须是动态的,但是我遇到了一些奇怪的问题。
这是示例代码:
let list = `
[170] (50-20-3) Fant
[173] (50-20-3) Chi
[174] (50-20-3) Trib
[176] (50-20-3) Fant
[177] (50-20-3) Emo
[178] (50-20-3) Fa
`;
// In fact, this 'find' variable is origin by user input.
let find = 170;
let re = new RegExp("[" + find + "](.+)");
let found = list.match(re)[1];
document.write(found);
Run Code Online (Sandbox Code Playgroud)
根据示例,我期望的是:
(50-20-3) Fant
Run Code Online (Sandbox Code Playgroud)
但是,我实际上得到了这个:
70] (50-20-3) Fant
Run Code Online (Sandbox Code Playgroud)
您需要用括号将引号引起来,因为该字符串不是正则表达式,并且通过将其转换为正则表达式,第一个带引号的qoute会转换为引号,并用引号引起来。
Run Code Online (Sandbox Code Playgroud)value type ----- ------------------ '\\[' string /\[/ regular expression
正则表达式中的方括号表示字符类。
value type
----- ------------------
'\\[' string
/\[/ regular expression
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |