我有一个
的HTML内容,我想从内容的开头和结尾删除
。无需删除两者之间的内容。
我尝试使用此方法:
el.innerHTML = el.innerHTML.replace(/\ /g, '');
el有一些HTML内容。像这样使用时,
之间的内容也会被删除。
我的HTML内容应如下所示
如何在开始和结束时从HTML内容中删除
?
示例:如果HTML内容应为<p> test example </p>
的意思,我希望输出为<p>test example</p>
。
答案 0 :(得分:1)
您正在寻找jQuery的装饰。
$.trim(' string with spaces at the ends ');
或者普通的javascript:
' string with spaces at the ends '.trim()
答案 1 :(得分:1)
这里,不需要jQuery。这将修剪标准空间并固定 注意:如果有多个空格,则可能需要更改为递归或循环。
编辑:更改了代码以管理基于元素的内容。
let samples = [
' <p>test </p> ',
' <p>test</p> ',
'<p> test </p>',
'<p class="test"> test </p>'
];
/**
* This function is checking to see if the value is wrapped in an HTML Element
* @param str the string you wish to test.
*/
const isElementBased = (str) => {
// Test to see if the content is wrapped in an element
let pattern = /^<[\S\s]+?>.+?<\/[\S\s]+?>$/;
return str.match(pattern);
}
/**
* This function will remove leading and trailing spaces/token
* @param str the string to be checked and have replacement action
* @param tokenOverride optional ability to override the seach token.
*/
const removeFixedSpaces = (str, tokenOverride) => {
let token = (tokenOverride === undefined) ? ' ' : tokenOverride;
str = str.trim();
if (str.startsWith(token)) {
str = str.substring(token.length);
}
if (str.endsWith(token)) {
str = str.substring(0, str.length - token.length);
}
return str;
}
const remove = (str) => {
let container;
if(isElementBased(str)) {
container = document.createElement('div');
container.innerHTML = str;
str = container.firstChild.innerHTML;
}
str = removeFixedSpaces(str);
if(container) {
container.childNodes[0].innerHTML = str;
str = container.innerHTML;
}
return str;
}
samples.forEach(s => {
console.log(`Testing: ${s}`);
console.log(`Result : ${remove(s)}`);
});
答案 2 :(得分:0)
您可以使用诸如split()
,pop()
,splice()
和join()
之类的数组操作:
let elText = ' <p>test </p> ';
elText = elText.split(' ')
//remove last
elText.pop();
//remove first
elText.splice(0,1);
elText = elText.join(' ');
console.log(elText);
答案 3 :(得分:0)
使用正则表达式有点像用大锤砸破螺母。 我会做这样简单的事情:
const trim = (text, find) => {
let beginPos = 0;
let endPos = text.length;
while (text.substring(beginPos, beginPos+find.length) == find)
{
beginPos += find.length;
}
while (text.substring(endPos-find.length, endPos) == find)
{
endPos -= find.length;
}
return text.substring(beginPos, endPos);
}
// Usage: trim("Your Text", "&bnsp;")
这会从头到尾删除所有您想要的东西...它应该是不言自明的。
答案 4 :(得分:0)
您可以考虑以下正则表达式:
el.innerHTML.trim().replace(/^ (.*) $/g, '$1')
trim
首先删除所有结尾的空格。
和最后一个public interface ITemp
{
int code { get; set; }
string name {get; set;}
}
之间的所有内容