我正在编写一个允许用户指定正则表达式的应用程序。当然,用户会犯错误,所以我需要一种方法来处理无法解析的正则表达式,并就如何解决问题给用户一些可行的建议。
我遇到的问题是抛出的异常new RegExp("something awful")
对正则表达式 n00bs 没有帮助,并且每个浏览器都有不同的消息。例如:
鉴于:
try{
new RegExp("(pie");
}catch(e){
console.log(e.message);
}
- Firefox 抛出“未终止的括号”。
- Safari 抛出“丢失 )”
- Chrome 抛出“未终止组”
如果这些消息字符串是用户语言本地化的,或者它们随着时间的推移而漂移,这不会让我感到惊讶,这使得与 exception.message 解开这个结是一个疯狂的结。
我的目标是捕捉异常,弄清楚它的真正含义,并提出对初学者更友好的信息。(在本例中,最终突出显示不匹配的括号。)
我应该使用其他一些异常标识符吗?有没有更好的方法来区分这些?如果这一切都失败了,是否有人刚刚收集了几个最流行的浏览器中的所有这些字符串?