【发布时间】:2020-03-05 05:47:36
【问题描述】:
我想使用正则表达式从字符串中提取全名。我怎样才能做到这一点?这段代码给了我结果的空值。怎么了?
var p = '№ 46/20 John Smith Newmore 23.01.2020';
var result = p.match(/^([a-zA-Z0-9]+|[a-zA-Z0-9]+\s{1}[a-zA-Z0-9]{1,}|[a-zA-Z0-9]+\s{1}[a-zA-Z0-9]{3,}\s{1}[a-zA-Z0-9]{1,})$/);
我的预期结果与正则表达式匹配:
现有数据 - 字符串: '№ 46/20 约翰史密斯纽莫尔 23.01.2020'
预期结果: '约翰·史密斯·纽莫尔'
【问题讨论】:
-
使用
p.replace(/[^a-zA-Z ]+/g,'').trim() -
@WiktorStribiżew 我如何使用西里尔符号?
-
p.replace(/[^а-яА-ЯёЁa-zA-Z ]+/g,'').trim()如果你要俄罗斯的。或p.replace(/[^\u0400-\u04FFa-zA-Z ]+/g,'').trim()处理任何西里尔字符。 -
@WiktorStribiżew 我得到了相同的“未捕获的语法错误:无效的正则表达式:/[^Р°-СЏРђ-РЇС'РЃa-zA-Z]+/:字符类中的范围无序”
-
你的文件编码有问题。但
p.replace(/[^\u0400-\u04FFa-zA-Z ]+/g,'').trim()将适用于所有西里尔字符。
标签: javascript jquery regex find