tgo*_*gos 2 javascript regex replace symbols character
我正在尝试从一段文本中删除特殊字符,但使用以下正则表达式
\n\nvar desired = stringToReplace.replace(/[^\\w\\s]/gi, \'\')\nRun Code Online (Sandbox Code Playgroud)\n\n(在这里找到:\n javascript regexp 删除所有特殊字符)
\n\n具有删除希腊字符的负面影响,这是我不想要的。
\n\n有人还可以解释一下如何在正则表达式中使用字符范围吗?是否有字符映射表可以帮助我定义我想要的范围?
\n\n回答:
\n\n[a-zA-Z0-9\xce\x86\xce\x88-\xcf\x8e\\s] # See my 2nd comment under Joeytje50\'s answer.\nRun Code Online (Sandbox Code Playgroud)\n
这些范围的定义方式基于其字符代码。因此,由于A具有 char code65和zchar code 122,因此以下正则表达式:
[A-z]\nRun Code Online (Sandbox Code Playgroud)\n\n会匹配每个字母,还会匹配每个字符代码介于这些字符代码之间的字符,即那些代码为 91 到 95 的字符,即字符[\\]^_。(演示)。
现在,对于希腊字母,从 alpha 到 omega,大写字符的字符代码为 913-937,从 alpha 到 omega,小写字符的字符代码为 945-969(这包括 sigma 的两种小写变体,即\xcf\x82(962) 和\xcf\x83(963) ))。
因此,要匹配除拉丁字母、希腊字母和阿拉伯数字之外的每个字符,您需要以下正则表达式:
\n\n[a-zA-Z0-9\xce\xb1-\xcf\x89\xce\x91-\xce\xa9]\nRun Code Online (Sandbox Code Playgroud)\n\n因此,对于希腊字符,它的作用就像拉丁字母一样。
\n\n编辑:我已经通过 Google Translate'd Lipsum 对此进行了测试,看起来这并没有考虑重音字母。我检查了这些重音字母的字符代码是什么,结果发现它们被放置在小写字母之前或大写字母之后。因此,以下正则表达式适用于所有希腊字母,包括重音字母:
\n\n[a-zA-Z0-9\xce\xac-\xcf\x89\xce\x91-\xcf\x8e]\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n此扩展范围现在还包括\xce\xac\xce\xad\xce\xae\xce\xaf\xce\xb0(字符代码 940 到 944)和\xcf\x8a\xcf\x8b\xcf\x8c\xcf\x8d\xcf\x8e(代码 970 到 974)。
\\s要还包含空格(空格、制表符、换行符),只需在范围中包含 a 即可:
[a-zA-Z0-9\xce\xac-\xcf\x89\xce\x91-\xcf\x8e\\s]\nRun Code Online (Sandbox Code Playgroud)\n\n演示。
\n\n编辑:显然,这个范围内需要包含更多希腊字母,即 range 中的字母[\xce\x86-\xce\xab],这是 之前的字母范围\xce\xac,因此新的正则表达式将如下所示:
[a-zA-Z0-9\xce\x86-\xcf\x89\xce\x91-\xcf\x8e\\s]\nRun Code Online (Sandbox Code Playgroud)\n\n演示。
\n| 归档时间: |
|
| 查看次数: |
4993 次 |
| 最近记录: |