gpt4 book ai didi

javascript - 单击“保存”时出现错误,并且无法创建新号码

转载 作者:行者123 更新时间:2023-12-03 05:18:26 25 4
gpt4 key购买 nike

当我单击引导模式按钮上的“保存”时,它会尝试查找下一个可用号码。

如果返回 null 会抛出错误。

类型错误:匹配项为空

Question When click on save in bootstrap modal if no numbers found in textarea then will create a number. Currently if no findAvailableNumber function returns null unable to create a number

Codepen Example

$('#myLink').on('shown.bs.modal', function() {
var text = getSelectedText();
$('#title').val(text.trim());
$('#url').val('http://');
});

function getSelectedText() {
var textarea = document.getElementById("message");
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
return sel;
}

function findAvailableNumber(textarea){
//Find lines with links
var matches = textarea.value.match(/(^|\n)\s*\[\d+\]:/g);

//Find corresponding numbers
var usedNumbers = matches.map(function(match){
return parseInt(match.match(/\d+/)[0]); }
);

//Find first unused number
var number = 1;

while(true){
if(usedNumbers.indexOf(number) === -1){
//Found unused number
return number;
}

number++;
}

return number;
}

$('#save-link').on('click', function(e) {
var textarea = document.getElementById("message");
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);

var counter = findAvailableNumber(textarea);

var replace = '[' + $('input#title').val() + ']' + '[' + counter + ']';

var id = '\n [' + counter + ']: ' + $('input#url').val();

if ($('#title').val().length > 0) {
textarea.value = textarea.value.substring(0,start) + replace +
textarea.value.substring(end,len) + id;
} else {

return false;
}
});

创建链接后,链接在文本区域中的外观如何。

[exmple-1][1] and [example-2][2]

[1]: http://www.example.com
[2]: http://www.example.com

最佳答案

您需要检查 <textarea> 是否实际上有一个在 findAvailableNumber() 范围内的值。如果没有,返回1开始吧。

function findAvailableNumber(textarea){
var number = 1;
if(textarea.value){

//Find lines with links
var matches = textarea.value.match(/(^|\n)\s*\[\d+\]:/g);

//Find corresponding numbers
var usedNumbers = matches.map(function(match){
return parseInt(match.match(/\d+/)[0]); }
);

//Find first unused number
var number = 1;

while(true){
if(usedNumbers.indexOf(number) === -1){
//Found unused number
return number;
}

number++;
}
}

return number;
}

Here's an updated pen.

关于javascript - 单击“保存”时出现错误,并且无法创建新号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41500649/

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