如何替换 Javascript 中的字符串
How to replace string in Javascript
我正在尝试用 'hi'
替换 '<p>hi</p>'
我的JavaScript:
var obj = {item:{title: params.title,description: params.text, link: req.headers['origin']+"/blog/blog-description/"+params.blog_id, guid:req.headers['origin']+"/blog/blog-description/"+params.blog_id}};
var xml2js = require('xml2js');
var builder = new xml2js.Builder();
var xml = builder.buildObject(obj);
var modXml = xml.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '');
var modXml = xml.replace(/<(?:.|\n)*?>/gm, '');
var new_text = modXml;
fs.readFile('public/feed.xml', function read(err, data) {
if (err) throw err;
var file_content = data.toString();
var c = file_content.indexOf('</description>');
var position = c + 14;
file_content = file_content.substring(position);
var file = fs.openSync('public/feed.xml','r+');
var bufferedText = new Buffer(new_text+file_content);
fs.writeSync(file, bufferedText, 0, bufferedText.length, position);
fs.close(file);
});
我不知道哪里出了问题有人可以提供帮助。
由于 replace 返回一个字符串对象,您可以简单地链接调用:
你试过了吗:
var modXml = xml.replace('<p>', '').replace("</p>",'');
我想你也可以把它压缩成一个正则表达式。
您可以使用正则表达式去除标签,或使用 striptags
等库
可选的正则表达式:
var text = '<p>aaa</p>';
console.log(text.replace(/<(?:.|\n)*?>/gm, ''));
striptags 库可用于去除所有标签,或仅去除特定标签:
var text = '<p>aaa</p>';
striptags(html);
striptags(html, ['p']);
xml2js 将您的 <p>
标记替换为 <p>
(并将 </p>
替换为 </p>
),因此您需要替换被替换的字符串。此外,使用 headless: true
选项调用 Builder()
- 这样就不需要替换 header。以下作品:
var obj = {item:{title: '<p>foobarbaz</p>',description: "<p>foo</p>", link: "<p>bar</p>", guid:"<p>baz</p>"}};
var xml2js = require('xml2js');
var builder = new xml2js.Builder({ headless: true });
var xml = builder.buildObject(obj);
var modXml = xml.replace(/<p>|<\/p>/gm, '');
console.log(modXml);
输出:
<item>
<title>fobaba</title>
<description>foo</description>
<link>bar</link>
<guid>baz</guid>
</item>
试试这个:
xml.split('<p>hi</p>').join('hi');
我正在尝试用 'hi'
替换'<p>hi</p>'
我的JavaScript:
var obj = {item:{title: params.title,description: params.text, link: req.headers['origin']+"/blog/blog-description/"+params.blog_id, guid:req.headers['origin']+"/blog/blog-description/"+params.blog_id}};
var xml2js = require('xml2js');
var builder = new xml2js.Builder();
var xml = builder.buildObject(obj);
var modXml = xml.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '');
var modXml = xml.replace(/<(?:.|\n)*?>/gm, '');
var new_text = modXml;
fs.readFile('public/feed.xml', function read(err, data) {
if (err) throw err;
var file_content = data.toString();
var c = file_content.indexOf('</description>');
var position = c + 14;
file_content = file_content.substring(position);
var file = fs.openSync('public/feed.xml','r+');
var bufferedText = new Buffer(new_text+file_content);
fs.writeSync(file, bufferedText, 0, bufferedText.length, position);
fs.close(file);
});
我不知道哪里出了问题有人可以提供帮助。
由于 replace 返回一个字符串对象,您可以简单地链接调用:
你试过了吗:
var modXml = xml.replace('<p>', '').replace("</p>",'');
我想你也可以把它压缩成一个正则表达式。
您可以使用正则表达式去除标签,或使用 striptags
等库可选的正则表达式:
var text = '<p>aaa</p>';
console.log(text.replace(/<(?:.|\n)*?>/gm, ''));
striptags 库可用于去除所有标签,或仅去除特定标签:
var text = '<p>aaa</p>';
striptags(html);
striptags(html, ['p']);
xml2js 将您的 <p>
标记替换为 <p>
(并将 </p>
替换为 </p>
),因此您需要替换被替换的字符串。此外,使用 headless: true
选项调用 Builder()
- 这样就不需要替换 header。以下作品:
var obj = {item:{title: '<p>foobarbaz</p>',description: "<p>foo</p>", link: "<p>bar</p>", guid:"<p>baz</p>"}};
var xml2js = require('xml2js');
var builder = new xml2js.Builder({ headless: true });
var xml = builder.buildObject(obj);
var modXml = xml.replace(/<p>|<\/p>/gm, '');
console.log(modXml);
输出:
<item>
<title>fobaba</title>
<description>foo</description>
<link>bar</link>
<guid>baz</guid>
</item>
试试这个:
xml.split('<p>hi</p>').join('hi');