如何使用alias
实现RegExp
- 类似JavaScript的功能?
ALIAS = [{pattern: /^ls[$ ]/, replace: 'ls --color '}]
s = 'ls /'
alias = function(t) {
for (var i = 0; i < ALIAS.length; i++) {
t = t.replace(ALIAS[i].pattern, ALIAS[i].replace)
}
return t
}
console.log(alias('ls'))
console.log(alias('ls /'))
console.log(alias('lsusb'))
console.log(alias('lsCPU'))
输出错误:
~ ls
~ ls --color /
~ lsusb
~ lsCPU
预期产出:
~ ls --color
~ ls --color /
~ lsusb
~ lsCPU
答案 0 :(得分:2)
您的正则表达式不正确。 /^ls[$ ]/
匹配ls
后跟文字$
或空格。 $
不是字符类[]
中的锚点。
您希望/^ls\b/
,即ls
后跟字边界:
ALIAS = [{pattern: /^ls\b/, replace: 'ls --color'}]