为 STRING 创建一个语法表达式.字符串.PEG上的绳子.js
Make a Grammar expression for STRING.STRING.STRING on PEG.js
我正在寻找一个 peg.js 语法表达式来匹配:
-
"variable"
# 失败 -
"variable."
# 失败 -
""
# 失败 -
"variable.variable"
# 确定 -
"variable.variable.variable.variable.variable"
#Ok
我期望的输入
-
{PATH: "variable.variable"}
-
{PATH: "variable.variable.variable.variable.variable"}
Sample.pegjs
start =
PATH_EXP
STRING_EXP =
chars:[0-9a-zA-Z_]+ { return chars.join(""); }
PATH_EXP =
path:(STRING_EXP "." STRING_EXP) { return {PATH: path.join("")}; }
我不知道如何使表达式重复,但也使其可选。
这是我想出的去掉"."字符的方法。我承认我从来没有使用过钉子.js在:)
PATH_EXP =
(first:STRING_EXP rest:("." STRING_EXP)*) {
return {
PATH: first +
rest.map(function(v) {
return v[1];
}).join("")
};
}
编辑 — 哦,等等,这更好:
PATH_EXP =
first:STRING_EXP rest:("." s:STRING_EXP { return "." + s; })+ {
return {
PATH: first + rest.join('')
};
}
编辑 — 显然,如果您想要"."字符,您可以将它们包含在第二部分中的操作中。 错过了问题的那部分。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 本地存储中的字符串到字节数组转换
- JavaScript按钮/输入/函数,字符串反转
- 从查询字符串参数推断出正确的数据类型
- 高亮显示与数组字符串一起使用时文本插件中断
- 为 STRING 创建一个语法表达式.字符串.PEG上的绳子.js