Javascript RegExp字母数字字符串+;特别信件

Javascript RegExp字母数字字符串+;特别信件,javascript,regex,string,Javascript,Regex,String,第一个问题:我想替换除字母数字和特殊字母以外的所有字符。例如,somestringğşiöç123456!@#$%^&*()+到somestringğşiöç123456 第二:例如,some---example--long stringtosome example long string 我真的不知道regexp,所以我需要2个简单的regexp字符串。首先谢谢。。它匹配任何不是字母数字、空格或非ascii的字符,并用空字符串替换它们 /* 1. */ return x.replace(

第一个问题:我想替换除字母数字和特殊字母以外的所有字符。例如,
somestringğşiöç123456!@#$%^&*()+
somestringğşiöç123456

第二:例如,
some---example--long string
to
some example long string


我真的不知道regexp,所以我需要2个简单的regexp字符串。首先谢谢。

它匹配任何不是字母数字、空格或非ascii的字符,并用空字符串替换它们

 /* 1. */   return x.replace(/[!@#$%^&*()_+]/g, '');
 /* 2. */   return x.replace(/-{2,}/g, '-');
str.replace(/[^a-z0-9\s\x80-\uFFFF]+/gi, '');
我没有可以使用的unicode类,所以我要么包含所有unicode字符,要么列出不是字母、数字或空格的字符

秒。它匹配两个或多个破折号的任意序列,并用一个破折号替换它们

str.replace(/-{2,}/g, '-');

首先。它匹配任何非字母数字、空格或非ascii的字符,并将其替换为空字符串

str.replace(/[^a-z0-9\s\x80-\uFFFF]+/gi, '');
我没有可以使用的unicode类,所以我要么包含所有unicode字符,要么列出不是字母、数字或空格的字符

秒。它匹配两个或多个破折号的任意序列,并用一个破折号替换它们

str.replace(/-{2,}/g, '-');


不,我只是想创建一些share.php脚本(作为我项目的一部分,iframe modal box)。无意冒犯。你给出了问题和答案的提示。使用Regexp可以替换特殊字符。如果它看起来像家庭作业,如果它读起来像家庭作业,那么它一定是家庭作业。请别管标签。我解释说,这不是家庭作业,这是我自己项目的一部分。如果你想感觉这是家庭作业,不需要特别的“家庭作业”标签,请不要编辑我的问题,如果你想感觉这是家庭作业,请自己做。不幸的是,我无法理解对ST社区的误解。不,我只是想创建一些share.php脚本(作为我项目的一部分,iframe modal box)。无意冒犯。你给出了问题和答案的提示。使用Regexp可以替换特殊字符。如果它看起来像家庭作业,如果它读起来像家庭作业,那么它一定是家庭作业。请别管标签。我解释说,这不是家庭作业,这是我自己项目的一部分。如果你想感觉这是家庭作业,不需要特别的“家庭作业”标签,请不要编辑我的问题,如果你想感觉这是家庭作业,请自己做。不幸的是,我无法理解对ST社区的误解。
ğ
ş
\x80-\xff
块之外。你可以将这些替换组合起来:
str.replace(/[^a-z0-9\s\x80-\uFFFF]+/gi,“-”)
@Gumbo:不完全是这样,因为那样会引入一个破折号。当然,这可能没问题,但这不是规定的。尽管如此,在一个正则表达式中可以做到这一点,但我不确定这是否值得,我也不确定OP想要什么
a#-#-#-#-#-#b
变成(即
a--b
a-b
a
a
\x80-\xff
块之外。您可以将这些替换组合起来:
str replace(/[^a-z0-9\s\x80-\uFFFF]+/gi,“-”
@Gumbo:不完全是这样,因为那样会在
a###b
中引入一个破折号。当然,这可能没什么问题,但这不是指定的。尽管如此,在一个正则表达式中也可以做到这一点,但我不确定这是否值得,我也不确定OP希望
a#b
变成什么(即
a--b
a-b
?)两个或多个连字符应替换为空字符串。您第一次是对的:这应该是
replace(/-{2,}/g,'-'))
一些---示例
-->
一些示例
@Silent&@Kobi:实际上没有区别,他们都做相同的事情。我只是测试了一下。@oguz-我不明白这怎么可能,那会将
a--b
更改为
ab
,而不是
a-b
@Kobi:你说得对,@Kenny:对不起,不知道我当时在想什么e连字符应该替换为空字符串。您第一次是对的:应该是
replace(/-{2,}/g,'-'))
一些----example
-->
一些例子
@Silent&@Kobi:实际上没有区别,他们都做相同的事情。我只是测试了一下。@oguz-我不明白这怎么可能,那会把
a--b
改成
ab
,而不是
a-b
@Kobi:你说得对,@Kenny:对不起,我不知道我在想什么