javascript - 正则表达式匹配失败

标签 javascript regex string variables pattern-matching

我正在尝试匹配以下格式:<任意数量的 a-z A-Z 字符>

使用 "^<\w*>$";

代码是:

var predefinedListRegEx = "^<\w*>$";
var dataFill = "<aaaa>"; 
var predefined_List = dataFill.match(predefinedListRegEx);

if (predefined_List != null) {
        //MATCHES THE CONDITION
    }

似乎无法让它工作。我哪里出错了?

此外,一旦我得到匹配的字符串,我想减去 <> 中的内容 并用它来引用变量。

var vacba = 0 

例如

然后到vacba = 10;

最佳答案

这里的正则表达式是字符串,而不是正则表达式。尝试:

var predefinedListRegEx = /^<\w*>$/;

如果出于某种原因你需要使用由 match 转换为正则表达式的字符串,你必须转义你的斜杠:

var predefinedListRegEx = "^<\\w*>$";

以更多请求响应您的编辑:

使用带括号的匹配组:

var predefinedListRegEx = /^<(\w*)>$/;
var dataFill = "<aaaa>"; 
var predefined_List = dataFill.match(predefinedListRegEx);

这将设置 predefinedListRegEx像这样的数组:["<aaaa>", "aaaa"] .

如果要使用predefined_List[1]中的字符串作为变量名(例如,执行 aaaa = 10 ),您可能不需要使用 eval .如果变量是全局的,你可以简单地使用 window[predefined_List[1]]因为所有全局变量都是 window 的属性目的。如果它不是全局的(或者如果你只是想成为一个整洁的 JavaScript 程序员而不是过度使用全局命名空间),你最好只在一个包含你的值的对象上使用引用属性,如 variablesNamedInMyRegexes[predefined_List[1]] = 10; .

关于javascript - 正则表达式匹配失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12160188/

相关文章:

python - 字符串文字前面的 'b' 字符有什么作用?

c++ - 为什么需要在新字符(str.length())上添加一个?

javascript - knockout 动态 <select> 选项覆盖选择值

regex - 使用 sed 和 regex 更改 bash 中不包括变量的每个符号

java - 如何拆分多行 INSERT INTO sql 语句?

python - 在 Python 中字节对象相对于字符串对象有哪些优势?

javascript - 将时区偏移 "+00:00"转换为分钟

javascript - 动态删除样式?

javascript - 在下面的 javascript 函数中,|| 的作用是什么?运营商呢?

regex - 将用正则表达式修改的另一个变量的结果分配给一个变量