繁体   English   中英

正则表达式忽略特殊字符

[英]regex to ignore special characters

说,我有一个文本存储为:

var val1 = 'l-oreal';

我想匹配val1这样它将读取val1并忽略其中的连字符(破折号)。 我想要一个正则表达式,忽略文本中的特殊字符。 那可能吗?

我不想从文本中删除特殊字符。 我想忽略它。

您可以与正则表达式/[az]+/gi匹配,然后以空格或任何其他字符加入:

 var testString = "any string l-orem"; var matcher = /[az]+/gi; var matches = testString.match(matcher); var result = matches.join(''); console.log(result); 

当然,这不会更改您的原始字符串,并且可以根据您的需要进行简单地自定义。

您可以使用^来选择特殊字符,然后将其替换为空字符串'' ,如下所示:

val1.replace(/([^a-zA-z0-9]+)/g, s0 => ''); // loreal

a-zA-Z-0-9a-zA-Z-0-9所有内容都将被删除。


在以下情况下更新场景的帖子:

该字符串必须包含字符abc并忽略任何特殊字符

对于这种方法,您可以利用match来知道您的字符串在正则表达式上是否有任何匹配项。 如果是这样,则可以使用replace将特殊字符切换为空字符串:

function strChecker(str) {
    var response;
    if(val1.match(/lorem/)) {
       response = val1.replace(/([^a-zA-z0-9]+)/g, s0 => '');
    }
    return response;
}

strChecker('ha-ha?lorem') // returns hahalorem
strChecker('ha-ha?loram') // return undefined

 var val1 = 'l-oreal'; var val2 = val1.replace(/\\W/g,''); // remove any non-alphanumerics console.log(val1); // still the same, not changed console.log(val2); // only alphanumerics 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM