Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中匹配除特定模式之外的所有内容_Javascript_Regex - Fatal编程技术网

在JavaScript中匹配除特定模式之外的所有内容

在JavaScript中匹配除特定模式之外的所有内容,javascript,regex,Javascript,Regex,经过多次搜寻,我还是被难住了。除了与给定模式匹配的内容外,如何匹配字符串中的所有内容 我已经找到了使用^或否定前瞻否定特定单词或字符集的解决方案,但我需要一个否定与特定模式匹配的任何内容的解决方案 示例文本(html片段): abcd efg hijkl xxx nop qrst uv wxyz。 我想匹配除整个span标记以外的所有内容。i、 除了 /<span.*?<\/span>/ /您始终可以在正则表达式上拆分文本,如下所示: var text='abcd efg

经过多次搜寻,我还是被难住了。除了与给定模式匹配的内容外,如何匹配字符串中的所有内容

我已经找到了使用
^
或否定前瞻否定特定单词或字符集的解决方案,但我需要一个否定与特定模式匹配的任何内容的解决方案

示例文本(html片段):

abcd efg hijkl xxx nop qrst uv wxyz。
我想匹配除整个span标记以外的所有内容。i、 除了

/<span.*?<\/span>/

/您始终可以在正则表达式上拆分文本,如下所示:

var text='abcd efg hijkl xxx nop qrst uv wxyz'
console.log(
text.split(/
console.log('abcd efg hijkl xxx nop qrst uv wxyz')。替换(/]*>/g');
//或变体#2
console.log('abcd efg hijkl xxx nop qrst uv wxyz')。替换(/\s?/g');

以这种方式使用正则表达式是非常幼稚的,而且容易产生不必要的副作用。我的建议是使用内置的DOM API

创建一个包装器元素,将
innerHTML
属性的值设置为输入字符串,查询有问题的元素的包装器元素,删除有问题的元素,然后返回
innerHTML
属性的值

下面是一个例子:

const input=“abcd efg hijkl xxx nop qrst uv wxyz。”;
常量func=input=>{
const wrapper=Object.assign(document.createElement('div'),{innerHTML:input});
wrapper.querySelector('.skipMe').remove()
返回wrapper.innerHTML;
};

console.log(func(input));
您的目标是获得一个没有该标记的字符串吗?在这种情况下,您可以执行如下操作:
str.replace(/]+(>|$)/g,”)
/<span.*?<\/span>/
console.log('abcd efg hijkl <span class=\'skipMe\'>xxx</span> nop qrst uv wxyz.'.replace(/<(|\/)span[^>]*>/g, ''));

//OR variant #2

console.log('abcd efg hijkl <span class=\'skipMe\'>xxx</span> nop qrst uv wxyz.'.replace(/\s<span.+span>?/g, ''));