Javascript—如果StartsWith,则查找并剪切
Javascript — Find And Cut if StartsWith
我需要查看第一行文本是否以By
开头,如果为true,则剪切整行并将其存储在变量中,并删除所有空行,直到下一段开始。查找By
的方法需要不区分大小写,并且它可能也有一些前面的空白。如果第一行不是以By
开头,则为do nothing
。
var findBy = 'By Bob';
if (findBy.startsWith('By ')) {
findBy = copyBy;
findBy.split("'n").slice(1).join("'n");
}
var pasteBy = copyBy;
让我重新表述一下:查找第一行是否以By
开头。如果是,请将包含By
的整行保存在变量中,然后将其删除。
调整。。。
function removeBy(textArray) {
var capture = false;
rebuild = [];
for (var i=0,len=textArray.length; i<len; i++) {
var s = textArray[i].trim();
if (s.substring(0,3).toUpperCase()==="BY ") {
capture = true;
} else if (capture && s!=="") {
capture = false;
}
if (capture) {
rebuild.push(s);
}
}
return rebuild;
}
此函数假定您正在发送一个字符串数组,并返回一个剥离的数组。
var answer = removeBy(["By Bob", "", "", "This is the result"]);
// answer = ["By Bob"];
Fiddle:http://jsfiddle.net/rfornal/ojL72L8b/
如果传入数据用换行符分隔,则可以使用.strip()
函数使textArray
;反过来,返回的rebuild
可以与answer.join("'n");
放回一起
更新
根据评论,将substring
更改为(0,3)
,并与"BY "
(空格)进行比较,使其仅关注BY,而不是类似BYA的内容。
更新Fiddle:http://jsfiddle.net/rfornal/b5gvk48c/1/
如果我完全理解您的需求,您可以使用此regex
(可能不是最强大的,我根本不是正则表达式专家)
/^('s'bby'b|'bby'b).*$/gmi
- 从最后一个修饰符开始的小演练:
g
全局,它不会在第一次出现时返回
m
多行、^
和$
将匹配行的开始/结束,而不是字符串
i
不敏感,我打赌你明白了 - 现在,回到开头
^
将在字符串的开头进行搜索
(x|y)
是一个具有两个可选项(x或y)的捕获组
's'
是任何空白(''r''n''t''f)
'bword'b
是单词的边界,例如它不会捕获"单词s"
.*
匹配任何字符(换行符除外),直到
此处为字符串/行的$
结尾
//those should be found
var text = "by test 1 'n" +
" by test 2 'n" +
"By test 3 'n" +
" By test 4 'n" +
//Those should not
"test By 5 'n" +
"test by 6 'n" +
"Bya test 7 'n" +
"bya test 8 'n" +
" Bya test 9 'n" +
" bya test 10 'n";
var matchingLines = text.match(/^('s'bby'b|'bby'b).*$/gmi);
document.querySelector('p').textContent = "|" + matchingLines.join("|") + "|";
<p/>
相关文章:
- Javascript—如果StartsWith,则查找并剪切
- 如果我知道另一个值,请在多维数组中查找一个值
- 如果字符串保存在变量中,如何查找包含字符串的ID
- 查找 img 是否有“alt”,如果没有,则从数组(服务器端)添加
- 最终任务,如果可能的话,在Javascript中查找,通过单击滚动条来检测页面滚动
- 自动查找数字总和,因为用户输入值是动态的,而不管输入的数量如何.如果用户输入的数字不是,则提醒用户
- jq查询查找单元格值,如果存在则更改单元格,如果没有,则添加新行
- 动态查找 jQuery 元素(如果存在)
- 如果根据列名 id 选中复选框,则查找 id 列的值
- 如果列有多个DIV,JavaScript函数会查找并更改列的CSS
- 如果有这个类的元素,如何在正文中查找
- 如果第一个位置无法加载,请在第二个位置查找Javascript源文件
- 如果在jqgrid中使用了clickableCheckBox格式化程序,如何查找布尔列值
- 查找元素是否只包含一个元素,如果为true则隐藏父元素
- Javascript Regex;查找'x',但如果前面有'y'
- Imacros脚本以查找文本,如果未找到则发出警报
- 如果img alt标记包含'已售出'查找下一个匹配的类
- javascript数组查找时间最长,ID第一,如果超过当前值
- 如果它的父元素为li,则查找ul
- 我如何找到如果一个或多个数组元素匹配在lodash查找