gpt4 book ai didi

javascript - 如何检测字符串的特定范围是否在换行符中?

转载 作者:行者123 更新时间:2023-12-03 07:50:38 27 4
gpt4 key购买 nike

我有一个像这样的字符串:

var str = "this is test1
this is test2
this is test3";

现在我想如果该范围的两边都是 \n 则返回 true,否则返回 false。在上面的例子中,只有这三个范围是正确的:

[0 - 12] => true

[14 - 26] => true

[27 - 39] => true

所有其他范围都必须为false。像这样:[1 - 12][5 - 17]、...

<小时/>

注意:该范围之前和之后的空格并不重要。例如:

var str = "     this is a test    ";

现在这个范围是true:[0 - 20][2 - 18][5 - 22] ,...

<小时/>

实际上,我正在尝试创建一个 markdown 编辑器,现在我正在研究它的代码方法按钮。所以我需要知道,如果所有选定的文本(该范围)都在一行中,则在其前面附加 4 个空格,否则在其周围附加两个“`”。

最佳答案

尝试使用 onselect 事件,将输入文本的每一行存储在数组中,使用 RegExp \n 检查每一行是否有已保存的变量。另请参阅Getting currently selected text

var textarea = document.querySelector("textarea"), re = /\n/;

textarea.onselect = function(e) {
var res = [];
// current selection
var sel = this.value.slice(this.selectionStart, this.selectionEnd);
// create array of input value split at new line characters
var matches = this.value.split(re);
// split input value at new line characters
// return `true` or `false`
var selected = sel.split(re);
for (var i = 0; i < selected.length; i++) {
if (matches.indexOf(selected[i]) !== -1) {
res.push(true)
} else {
res.push(false)
}
}

console.log(matches, res, selected)
}
<textarea style="width:300px;height:200px">
this is test1
this is test2
this is test3</textarea>

关于javascript - 如何检测字符串的特定范围是否在换行符中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35007710/

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