jac*_*rdy 38 javascript validation jquery
我正在创建一个小型Web应用程序,用户在其中输入一个服务器URL,从中通过AJAX请求提取数据负载.
由于用户必须手动输入URL,因此人们通常会忘记尾部斜杠,即使它是必需的(因为某些数据会附加到输入的URL中).我需要一种方法来检查是否存在斜杠,如果没有,则添加它.
这似乎是一个问题,jQuery会有一个单行,有谁知道如何做到这一点,还是我应该为它编写JS函数?
Man*_*yas 104
var lastChar = url.substr(-1); // Selects the last character
if (lastChar != '/') { // If the last character is not a slash
url = url + '/'; // Append a slash to it.
}
Run Code Online (Sandbox Code Playgroud)
临时变量名可以省略,并直接嵌入到断言中:
if (url.substr(-1) != '/') url += '/';
Run Code Online (Sandbox Code Playgroud)
由于目标是使用单行更改URL,因此还可以使用以下解决方案:
url = url.replace(/\/?$/, '/');
Run Code Online (Sandbox Code Playgroud)
/./则将a 附加到末尾(确切地说:将替换尾随锚/).bne*_*bne 11
我添加到正则表达式解决方案以适应查询字符串:
url.replace(/\/?(\?|#|$)/, '/$1')
Run Code Online (Sandbox Code Playgroud)
这也有效:
url = url.replace(/\/$|$/, '/');
Run Code Online (Sandbox Code Playgroud)
例子:
let urlWithoutSlash = 'https://www.example.com/path';
urlWithoutSlash = urlWithoutSlash.replace(/\/$|$/, '/');
console.log(urlWithoutSlash);
let urlWithSlash = 'https://www.example.com/path/';
urlWithSlash = urlWithoutSlash.replace(/\/$|$/, '/');
console.log(urlWithSlash);
Run Code Online (Sandbox Code Playgroud)
输出:
https://www.example.com/path/
https://www.example.com/path/
Run Code Online (Sandbox Code Playgroud)
它用尾部斜线替换尾部斜线或无尾部斜线。因此,如果存在斜线,则将其替换为 1(基本上将其保留在那里);如果不存在,则添加尾部斜杠。
这个URL类非常棒 - 它帮助我们更改路径并处理查询参数和片段标识符
function addTrailingSlash(u) {
const url = new URL(u);
url.pathname += url.pathname.endsWith("/") ? "" : "/";
return url.toString();
}
addTrailingSlash('http://example.com/slug?page=2');
// result: "http://example.com/slug/?page=2"
Run Code Online (Sandbox Code Playgroud)
您可以URL在MDN上阅读更多相关内容
| 归档时间: |
|
| 查看次数: |
36369 次 |
| 最近记录: |