gpt4 book ai didi

jslint - 如何修复 JSLint 不安全 ^ 错误?

转载 作者:行者123 更新时间:2023-12-02 09:08:04 26 4
gpt4 key购买 nike

我有以下功能。其作用是过滤子域中允许的字符。在 JSLint 中我收到以下错误。有什么办法可以做到这一点而不 JSLint 显示错误。我知道我可以忽略 JSLint 设置中的错误,但是有没有其他方法可以改进我的代码以不显示 JSLint 错误。 JSLint Error

function filterSubDomain(value) {
return value.replace(/[^a-z0-9\-]/ig, '')
.replace(/^[\-]*/, '')
.replace(/[\-]*$/, '')
.toLowerCase();
}

最佳答案

我认为这很简单——只需快速重新线程即可。我将快速重复上面的评论:JSLint 希望您说出您确实想要的内容,而不是的内容,因为说你不想要的总是为你想要潜入的超集留下空间。也就是说,JSLint 的目的是强制你显式/精确地编码。

因此,您需要在此处使用 match,而不是 replace。我相信这是一种方法(从 MDN's match code 窃取一点):

/*jslint sloppy:true, white:true, devel:true */
function filterSubDomain(value) {
var out = value,
re = /[a-z0-9\-]+/gi,
found;

found = value.match(re);

out = found.join("");

// There are better ways to `trim('-')`.
while (0 === out.indexOf("-")) {
out = out.substr(1);
}
while (out.length === out.lastIndexOf("-")+1) {
out = out.slice(0,out.length-1);
}

return out;
}

console.log(filterSubDomain('---For more inform--ation, - see Chapter 3.4.5.1---'));
// Formoreinform--ation-seeChapter3451

There are other ways to trim ,但你明白了。使用 JSLint 的 JavaScript 正则表达式中没有 not!

关于jslint - 如何修复 JSLint 不安全 ^ 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28110465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com