如何检测字符串中的特定范围是否在换行符中
How to detect whether a specific range from string is in the newline?
我有一个这样的字符串:
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]
,...
实际上,我正在
尝试创建一个降价编辑器,现在我正在研究其代码方法按钮。所以我需要知道,如果所有选定的文本(该范围)都在一行中,则在其前面附加 4 个空格,否则在它周围附加两个"'"。
尝试使用
onselect
事件,将输入文本的每一行存储在数组中,使用 RegExp
'n
检查每行是否有保存的变量。另请参阅获取当前选定的文本
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>
相关文章:
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- 为什么IIFE的这个变量指的是全局范围
- 为什么不是't这=>边界“;这个“;到周围的范围
- 访问内部功能范围的元素,而不是敲除中的外部
- 角承诺的“then”函数的成功回调的词汇范围是什么?
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- 在全球范围内强制ng严格di,而不仅仅是在ng应用程序级别上
- 在日期范围内查找丢失日期的最有效方法是什么
- 谷歌应用程序脚本:;范围不是函数,它是对象;尝试在单元格中放置注释时出错
- HTML5范围滑块值在使用jQuery(而不是UI)的过程中
- 具有固定最小值的jQuery UI滑块:显示最小范围,而不是最小绝对值
- 当生成正态分布的随机值时,定义范围的最有效方法是什么
- 什么是JavaScript日期范围
- 短范围命名空间数组是什么意思
- 这种减少if语句中声明的变量范围的模式是一种好的做法吗
- (文档).ready是一个全局范围
- 在全局范围内执行文件,而不是返回导出的对象
- RxJS的新手,范围不是一个函数
- 迭代器范围不是本地的
- 全局变量在函数范围内是未定义的