我想清除一些文本:
不良内容:...“关注我的足迹” ...(“关注”前的空格)
好的内容:...“按照我的指导” ...
对于双引号中的每个内容,我想清除空格。 伟大的进步!
我的内容测试:
Le tour estjoué。 “每分钟进行一次自动进餐就可以了。Nous voulons ramener ce temps deàà20seconds”,Jan-Willem Dockheer解释,总督Générald'AH To Go,à百变的“。鉴定书,按阶段进行:检验是否有可能确认确凿的质量,并可能对玛格辛和手工艺三叉戟产品进行分类。
代码:
app.use(express.session({
secret: config.secret,
resave: true,
saveUninitialized: true,
cookie: { secure: true }
}));
app.use(passport.session());
var flag = 0;
$("#launchCleaner").click(function() {
var loadOrigins =$('#txtorigines').val();
//clean1 = loadOrigins.trim();
clean1 = loadOrigins.replace(/" /g, '"');
clean2 = clean1.replace(/ "/g, '"');
clean3 = clean2.replace(/\./g, '. ');
$("#txtclean").append(clean3);
});
textarea{
width: 70%;
float: left;
margin: 0 1%;
border-radius: 3px;
height: 250px;
resize:none
}
答案 0 :(得分:2)
问题是您没有跟踪自己在引号内还是引号外。在我看来,在这种情况下使用正则表达式只会使问题复杂化。
这就是我的方法:分割引号,并跟踪是否在引号之外(最初:是,然后切换),然后从那里构造新的字符串。
$("#launchCleaner").click(function() {
var text = $('#txtorigines').val();
var fragments = text.split('"');
var newText = "";
var outsideOfQuotes = true;
for (var i = 0; i < fragments.length; i++) {
if (outsideOfQuotes)
newText += fragments[i];
else
newText += '"' + fragments[i].trim() + '"';
outsideOfQuotes = !outsideOfQuotes;
}
$("#txtclean").append(newText);
});
textarea {
width: 70%;
float: left;
margin: 0 1%;
border-radius: 3px;
height: 60px;
resize: none
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="txtorigines">Text to " clean up " as an " example ", with some "good text" as well.</textarea>
<textarea id="txtclean"></textarea>
<button type="button" id="launchCleaner">Nettoyer le texte</button>
答案 1 :(得分:1)
如果您的报价是均衡的,并且没有任何转义的报价,那么您可以使用以下代码:
let re = /"\s+(?!(?:(?:[^"]*"){2})*[^"]*$)|\s+"(?=(?:(?:[^"]*"){2})*[^"]*$)/gm;
str = str.replcae(re, '"');
此正则表达式使用替代:
"\s+
:匹配一个引号,后跟1+个空格(开头的引号)(?!(?:(?:[^"]*"){2})*[^"]*$)
:先行断言我们前面的引号没有偶数|
:或\s+"
:匹配1+空格,后接引号(结束引号)(?=(?:(?:[^"]*"){2})*[^"]*$)
:先行断言我们前面的引号是偶数答案 2 :(得分:0)
在与@anubhava相同的假设下
只需将"s*(.+?)\s*"
替换为"\1"
吗?