相关疑难解决方法(0)

为什么我不能在单词边界旁边使用重音字符?

我正在尝试制作一个与人名相匹配的动态正则表达式.它在大多数名称上都没有问题,直到我在名称的末尾遇到重音字符.

示例:一些FancyNamé

我到目前为止使用的正则表达式是:

/\b(Fancy Namé|Namé)\b/i
Run Code Online (Sandbox Code Playgroud)

像这样使用:

"Goal: Some Fancy Namé. Awesome.".replace(/\b(Fancy Namé|Namé)\b/i, '<a href="#">$1</a>');
Run Code Online (Sandbox Code Playgroud)

这根本不匹配.如果我用ae替换é,它就匹配得很好.如果我尝试匹配诸如"SomeFancyNaméa"这样的名字,它就可以了.如果我删除单词最后一个单词边界锚,它就可以正常工作.

为什么单词border flag不在这里工作?关于如何解决这个问题的任何建议?

我考虑过使用类似的东西,但我不确定性能惩罚会是什么样的:

"Some fancy namé. Allow me to ellaborate.".replace(/([\s.,!?])(fancy namé|namé)([\s.,!?]|$)/g, '$1<a href="#">$2</a>$3')
Run Code Online (Sandbox Code Playgroud)

建议?想法?

javascript regex unicode replace diacritics

8
推荐指数
2
解决办法
4389
查看次数

正则表达式允许法语文本和英文文本?

我想使用一个允许的正则表达式

  1. 英文文本没有特殊字符.
  2. 法语文本没有特殊字符.

在这两种语言中,它总是会禁止使用@,#,%等特殊字符.

我尝试过以下代码:

if (this.value.match(/[^a-zA-Z0-9 ]/g)) {
    this.value = this.value.replace(/[^a-zA-Z0-9 ]/g, '');
}
Run Code Online (Sandbox Code Playgroud)

它适用于英文文本,但问题是当我提供像éléphant这样的法语文本时,它会将法语字符视为特殊字符,并删除法语字符.所以éléphant变成了lphant.

有没有办法让正则表达式中的法语字符?

非常感谢提前.

javascript regex

7
推荐指数
2
解决办法
1万
查看次数

RegEx所有信件(包括中文,希腊文等)

我需要一个匹配中文,希腊文,俄文,...字母的正则表达式.我基本上想要做的是删除标点符号和数字.

到目前为止,我"手动"删除了标点符号和数字,但这似乎并不十分一致.

我尝试的另一件事是

/[\p{L}]/
Run Code Online (Sandbox Code Playgroud)

但是Mozilla不支持(我在Firefox扩展中使用它).

regex unicode firefox

6
推荐指数
1
解决办法
3458
查看次数

使用正则表达式匹配javascript中的国际/ unicode字母数字字符?

我正在尝试使用Javascript的string.match()函数来完成一项相当简单的任务:从字符串中提取所有单词,然后计算每个单词的出现次数.正则表达式:

/\w+/g
Run Code Online (Sandbox Code Playgroud)

除了无法处理任何类型的unicode/international字符这一事实外,此任务的工作正常.什么是能够匹配重音字符,西里尔字母和任何其他主要字母的最佳/最干净的方式?

如果它发生了重要,我目前正在Node.js环境中编码.

javascript regex unicode

6
推荐指数
1
解决办法
5334
查看次数

需要一个需要大写或小写字母的JavaScript正则表达式

我有一个正则表达式,现在只允许小写字母,我需要一个需要小写或大写字母:

/(?=.*[a-z])/
Run Code Online (Sandbox Code Playgroud)

javascript regex

5
推荐指数
3
解决办法
7874
查看次数

正则表达式匹配多字节数字

我需要匹配多字节 \xef\xbc\x90\xef\xbc\x91\xef\xbc\x92\xef\xbc\x93\xef\xbc\x94\xef\xbc\x95\xef\xbc\x96\使用正则表达式从日语中提取 xef\xbc\x97\xef\xbc\x98\xef\xbc\x99 字符。

\n

[0-9]在这种情况下不起作用。我怎样才能制作这个正则表达式?这是我第一次尝试匹配多字节字符串。

\n

更新

\n

使用以下命令在 UTF-8 和非 UTF-8 中成功匹配 4 位数字字符串,例如出生年份regex

\n

^([0-9]{4}||[\\uFF10-\\uFF19]{4})$

\n

javascript regex multibyte

5
推荐指数
1
解决办法
1457
查看次数

过滤掉 JavaScript 中的所有非字母数字字符

我正在尝试从字符串中过滤掉与语言无关的 Unicode 字符。

\n

这是我想要的示例:

\n
const filt1 = "This will not be replaced: \xc3\xa6 \xc3\x87 \xc3\xbc"; // This will not be replaced: \xc3\xa6 \xc3\x87 \xc3\xbc\nconst filt2 = "This will be replaced: \xc2\xbb \xe2\x86\x95 \xe2\x97\x84"; // This will be replaced:   \n
Run Code Online (Sandbox Code Playgroud)\n

我该怎么做呢?像重音字母和汉字这样的字符是我想保留的。箭头、方块、表情符号等应该被过滤掉。

\n

我在网上找到了各种正则表达式过滤器,但没有一个完全符合我的要求。\n这个效果最好,但它体积庞大,并且不包含非重音字母数字字符。

\n
((?![a-zA-Z\xc3\xa0\xc3\xa8\xc3\xac\xc3\xb2\xc3\xb9\xc3\x80\xc3\x88\xc3\x8c\xc3\x92\xc3\x99\xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\xc3\xbd\xc3\x81\xc3\x89\xc3\x8d\xc3\x93\xc3\x9a\xc3\x9d\xc3\xa2\xc3\xaa\xc3\xae\xc3\xb4\xc3\xbb\xc3\x82\xc3\x8a\xc3\x8e\xc3\x94\xc3\x9b\xc3\xa3\xc3\xb1\xc3\xb5\xc3\x83\xc3\x91\xc3\x95\xc3\xa4\xc3\xab\xc3\xaf\xc3\xb6\xc3\xbc\xc3\xbf\xc3\x84\xc3\x8b\xc3\x8f\xc3\x96\xc3\x9c\xc5\xb8\xc3\xa7\xc3\x87\xc3\x9f\xc3\x98\xc3\xb8\xc3\x85\xc3\xa5\xc3\x86\xc3\xa6\xc5\x93 ]).)*\n
Run Code Online (Sandbox Code Playgroud)\n

javascript regex

5
推荐指数
1
解决办法
902
查看次数

正则表达式允许非ascii和外国字母?

是否可以创建一个正则表达式以允许非ascii字母和拉丁字母,例如中文或希腊符号(例如,允许A汉语AbN汉语)?

我目前有以下^[\w\d][\w\d_\-\.\s]*$只允许拉丁字母.

.net c# regex

4
推荐指数
1
解决办法
2853
查看次数

regexp特殊字符

我搜索过,现有的答案都不适合我.我的问题如下:

我有这个用于RegExp的代码,它搜索匹配并突出显示匹配字母,从第一个字母开始:

var newvals = [], regexp = new RegExp('\\b' + search.escapeRegExp(), insensitive ? 'ig' : '');
Run Code Online (Sandbox Code Playgroud)

这适用于英文/美国字母,但我也有挪威字母"æøå"中的特殊字符.知道我怎么能改变这个正则表达式来覆盖特殊字符?

编辑:在应用Sam Saint Pettersen的提示后(谢谢!),我让它显示特殊字符,但是当我进行搜索时,自动完成现在只匹配大写或小写字母.因此,如果我输入"Ø",它会建议以大写字母开头的所有单词,而不是以小写字母"ø"开头的单词.小写搜索也是如此.但是,常规字母通常显示大写和小写.此问题仅适用于特殊字符.有任何想法吗?

javascript regex

4
推荐指数
1
解决办法
2559
查看次数

正则表达式允许以全名形式并以字母开头的任何语言字符

我尝试验证名称字段,对于该字段,我喜欢允许最终用户添加类似的内容Merianos Nikos\xce\x9c\xce\xad\xcf\x81\xce\xb9\xce\xb1\xce\xbd\xce\xbf\xcf\x82 \xce\x9d\xce\xaf\xce\xba\xce\xbf\xcf\x82(希腊语)或任何其他语言的字符之类的内容。

\n\n

形式是第一个字母大写,单词的其余字母小写,并且至少两个单词。

\n\n

目前我有这个正则表达式/^([A-Z][a-z]*((\\s)))+[A-Z][a-z]*$/,它可以完美地与英语配合使用,但不能与希腊语配合使用,也许还可以与其他语言配合使用。

\n\n

最后,我想验证至少一个单词的另一个字段,首字母大写,但该字段也可以包含单词后面的字符。

\n\n

目前我使用以下正则表达式/^[\\s\\w\\.\\-_]+$/有效的正则表达式,但我再次遇到希腊语和其他语言的问题。

\n

javascript php regex

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

regex ×10

javascript ×8

unicode ×3

.net ×1

c# ×1

diacritics ×1

firefox ×1

multibyte ×1

php ×1

replace ×1