我对 Javascript 中的正则表达式有点陌生。
我正在尝试编写一个名为 parseRegExpression()
的函数
它解析传递的属性并生成键/值对
它与输入配合得很好:
"iconType:plus;iconPosition:bottom;"
但它无法解析输入:
"type:'date';locale:'en-US';"
基本上,-
符号被忽略。代码位于:
http://jsfiddle.net/visibleinvisibly/ZSS5G/
正则表达式键值对如下
/[a-z|A-Z|-]*\s*:\s*[a-z|A-Z|'|"|:|-|_|\/|\.|0-9]*\s*;|[a-z|A-Z|-]*\s*:\s*[a-z|A-Z|'|"|:|-|_|\/|\.|0-9]*\s*$/gi;
最佳答案
有几个问题:
- 字符类中的
|
表示文字|
字符,而不是交替字符。 - 字符类中的
.
表示文字.
字符,因此无需对其进行转义。 -
作为字符类中的第一个或最后一个字符表示文字-
字符,否则表示字符范围。- 当您使用不区分大小写的修饰符 (
i
) 时,无需使用[a-zA-Z]
;[a-z]
就足够了。 - 您的更改之间的唯一区别是最后一点;只需将您的替换限制在不同的部分即可显着简化。
这应该等同于您的原始模式:
/[a-z-]*\s*:\s*[a-z0-9'":_\/.-]*\s*(?:;|$)/gi
关于javascript - 无法解析 - Javascript 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17647374/