我有一个输入字段,可以在其中输入任何文本,包括其中的 URL。如果输入的是长 URL,我想缩短它(我将通过 API 处理这个问题)。
HTML:
<input type="text" onKeyDown={this.onKeyDown(event)}/>
JavaScript:
function onKeyDown(event) {
var stringWithURL = "Hello, World! https://www.google.com. I'm delighted to be a part of "https://amazon.com". Come again";
if (event.keyCode === 32 || event.keyCode === 13) { // Space bar and enter keys
let url;
try {
url = new URL(stringWithURL); // This text includes simple text as well as URL as a string
if(url.protocol === "http:" || url.protocol === "https:") {
return this.convertLongURLtoShort(stringWithURL); // Call API function
}
} catch (e) {
return false;
}
}
}
但是,上述函数无法识别简单文本与 URL,因为输入文本将整个内容视为单个字符串。因此它总是进入失败函数,我永远无法将 URL 转换为短 URL。
当我们在输入字段中输入内容时(可能是在按空格键或 Enter 键后),是否有办法识别文本与 URL,并在用户输入的单词是 URL 时调用 API?
ibeautiful
慕哥6287543
相关分类