如何从一行中两个(或多个)空格后出现的代码段中的$(this).text()
中删除所有内容,包括这些空格?
$(this).find('td.export').each(function() {
if($(this).is(':visible')) {
html += '<td>' + $(this).text() + '</td>';
}
});
示例:如果$(this).text()
=“text1 text2
”那么我只需要text1。
注意:我只在一行中查找两个或更多空格,因此如果只有一个空格,则不应删除任何内容。
非常感谢你提供任何帮助,蒂姆。
答案 0 :(得分:1)
编辑: OP已编辑了要求。我们不再离开第一个空格+字符组并删除第二个空格+字符组,我们只删除两个空格+字符。所以任务完全不同。离开原版,因为它无论如何都很有趣。
原文:离开第一个&#34;空格+字符&#34;阻止,从该块之后的第一个空格中删除所有内容。
在替换
中使用lambda函数搜索:^( \S+)[ ]{2}.*
在替换功能中,替换为组1。
^
声称我们位于字符串的开头( \S+)
匹配第一个空格,后跟第一个非空格字符并捕获到第1组[ ]{2}.*
匹配第二个空格,一直到字符串结尾以下是经过测试的代码(请参阅demo)
<script>
var subject = ' text1 text2';
var regex = /^( \S+)[ ]{2}.*/;
replaced = subject.replace(regex, function(m, group1) {
return group1;
});
document.write("<br>*** Replacements ***<br>");
document.write(replaced);
</script>
答案 1 :(得分:1)
theString.replace(/ {2,}.*/gm, '');
或者如果你想忽略一行开头的空格:
theString.replace(/(\S) {2,}.*/gm, '$1');
测试用例:
var theString =
'Hello world there are 2 spaces\n\
another row with more spaces\n\
yet another row whith spaces at the begin of the line';
var result = theString.replace(/ {2,}.*/gm, '');
var result2 = theString.replace(/(\S) {2,}.*/gm, '$1');
alert(result);
alert(result2);