2010-07-08 295 views
1

第一个问题:我想要替换除字母数字和特殊字母以外的所有字符。例如,somestringğüş iöç[email protected]#$%^&*()_+somestringğüş iöç123456正则表达式字母数字字符串+特殊字母

二:例如,some---example--long-stringsome-example-long-string

我真的不知道正则表达式,所以我需要2个简单的正则表达式strings.Thank你

+3

这是我们的作业吗? – 2010-07-08 10:17:36

+0

不,我只是想创建一些share.php脚本(如iframe模式框,我的项目的一部分)。 – 2010-07-08 10:19:33

+0

没有冒犯。你给出了这个问题和提示。 使用正则表达式可以替换特殊字符。 – 2010-07-08 10:20:35

回答

3

第一。它匹配任何不是字母数字,空格或非ASCII字符的字符,并将其替换为空字符串。

str.replace(/[^a-z0-9\s\x80-\uFFFF]+/gi, ''); 

没有Unicode的类,我可以使用,所以无论是我包括所有Unicode字符,或者列出不字母,数字也不是空白的人。

二。它匹配任何两个或更多破折号的序列,并用一个短划线替换它们。

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

''和'ş'在'\ x80- \ xff'区块之外。 – kennytm 2010-07-08 10:24:50

+0

哦,对。 Javascript有unicode字符串。 – 2010-07-08 10:29:33

+1

你可以合并这些替换:'str.replace(/ [^ a-z0-9 \ s \ x80- \ uFFFF] +/gi,' - ')' – Gumbo 2010-07-08 10:41:03

3
/* 1. */ return x.replace(/[[email protected]#$%^&*()_+]/g, ''); 
/* 2. */ return x.replace(/-{2,}/g, '-'); 
+0

我喜欢这个回答。 – 2010-07-08 10:21:11

+0

应将两个或更多连字符替换为空字符串。 – SilentGhost 2010-07-08 10:25:26

+0

@沉默:哎呀,你是对的。固定。 – kennytm 2010-07-08 10:25:50

相关问题