javascript - 无法解析 - Javascript 中的正则表达式

标签 javascript regex

我对 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/

相关文章:

javascript - 如何在 Microsoft Edge 中隐藏 html 视频控件(全屏模式)

javascript - 将正文添加到 Electron 上的 ClientRequest

C# 替换第一个空格之前的所有内容

java - 在正则表达式中排除空格,但保留下划线和连字符

regex - Nginx server_name 正则表达式不作为变量工作

javascript - window.prompt 的值未返回正确的 "Length"属性值

javascript - 获取存储在 HTML 元素中的 JSON

python - Pandas 与 R 中相同的正则表达式但结果不同

javascript - 在 Ionic 中触发输入时关闭 Android 设备中的键盘

javascript - 删除包含星号或点的单词