Javascript 带特殊字符的正则表达式
嗨,我有这个正则表达式Javascript 带特殊字符的正则表达式,javascript,regex,Javascript,Regex,嗨,我有这个正则表达式 /^[\w]|[åäöæøÅÄÖÆØ]$/ “tå”可以,但“tå”不行。为什么呢?我怎样才能让它接受以åäæäÄÆØ开头的单词 注意\w(和\w,\b和\b)以英语为中心\w仅表示[A-Za-z0-9.],其中A-Z仅表示26个英文字母。JavaScript的内置字符类不将其他字母视为“单词”的一部分 您需要构建一个字符类,其中包含所有要作为单词字符处理的字母(然后在“非单词字符”的任何位置使用该类的否定版本) 但这不是唯一的问题。您的正则表达式表示: 在字符串开头匹
/^[\w]|[åäöæøÅÄÖÆØ]$/
“tå”可以,但“tå”不行。为什么呢?我怎样才能让它接受以åäæäÄÆØ开头的单词 注意
\w
(和\w
,\b
和\b
)以英语为中心\w
仅表示[A-Za-z0-9.]
,其中A-Z
仅表示26个英文字母。JavaScript的内置字符类不将其他字母视为“单词”的一部分
您需要构建一个字符类,其中包含所有要作为单词字符处理的字母(然后在“非单词字符”的任何位置使用该类的否定版本)
但这不是唯一的问题。您的正则表达式表示:
在字符串开头匹配一个英文单词字符,或在字符串末尾匹配此列表中的一个字符
操作符相当贪婪,在这种情况下,它将^[\w]
和[åäæäÄÆØ]$
作为替代方法。我觉得这不是你想要的
“tå”可以,但“tå”不行
我想这取决于你所说的“好”是什么意思。两者都匹配表达式:
console.log("tå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["t", index: 0, input: "tå"]
console.log("åå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["å", index: 1, input: "åå"]
“tå”
匹配,因为它匹配^[\w]
备选方案<代码>“åå”匹配,因为它匹配的是[ååæåÄååå]$
备选方案
我怎样才能让它接受以åäæäÄÆØ开头的单词
如果目标是只接受仅包含一个单词的字符串,其中“单词”包括数字和下划线(因为\w
包含数字和下划线),则:
请注意,
\w
(和\w
、\b
和\b
)以英语为中心\w
仅表示[A-Za-z0-9.]
,其中A-Z
仅表示26个英文字母。JavaScript的内置字符类不将其他字母视为“单词”的一部分
您需要构建一个字符类,其中包含所有要作为单词字符处理的字母(然后在“非单词字符”的任何位置使用该类的否定版本)
但这不是唯一的问题。您的正则表达式表示:
在字符串开头匹配一个英文单词字符,或在字符串末尾匹配此列表中的一个字符
操作符相当贪婪,在这种情况下,它将^[\w]
和[åäæäÄÆØ]$
作为替代方法。我觉得这不是你想要的
“tå”可以,但“tå”不行
我想这取决于你所说的“好”是什么意思。两者都匹配表达式:
console.log("tå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["t", index: 0, input: "tå"]
console.log("åå".match(/^[\w]|[åäöæøÅÄÖÆØ]$/)); // ["å", index: 1, input: "åå"]
“tå”
匹配,因为它匹配^[\w]
备选方案<代码>“åå”匹配,因为它匹配的是[ååæåÄååå]$
备选方案
我怎样才能让它接受以åäæäÄÆØ开头的单词
如果目标是只接受仅包含一个单词的字符串,其中“单词”包括数字和下划线(因为\w
包含数字和下划线),则:
你为什么认为它失败了?我不会将\w放在方括号中,但各种系统似乎都允许这样做,并且以下两个选项都与正在测试的文本相匹配 Javascript
var test = 'åå';
if (test.match(/^[\w]|[åäöæøÅÄÖÆØ]$/)) { alert("Match"); }
PHP
echo(pregôu match(“/^[\w]|[ùùùùùùùùùùù]$/”,“ùùùùù249;
你想在这里实现什么?为什么你认为它失败了?我不会将\w放在方括号中,但各种系统似乎都允许这样做,并且以下两个选项都与正在测试的文本相匹配 Javascript
var test = 'åå';
if (test.match(/^[\w]|[åäöæøÅÄÖÆØ]$/)) { alert("Match"); }
PHP
echo(pregôu match(“/^[\w]|[ùùùùùùùùùùù]$/”,“ùùùùù249;
您想在这里实现什么?删除
$
<代码>[]表示字符类。“tå”可以,但“åå”不可以。它们都匹配表达式<代码>“tå”匹配,因为它匹配^[\w]
备选方案<代码>“åå”匹配,因为它匹配[åæÛÛ嗍嗍嗍嗍嗍]$
选项。删除$
<代码>[]表示字符类。“tå”可以,但“åå”不可以。它们都匹配表达式<代码>“tå”匹配,因为它匹配^[\w]
备选方案<代码>“åå”匹配是因为它匹配的是$备选方案。@user874774:不太清楚您要找的是什么。如果您的目标是查看字符串是否只包含一个单词,则选择“是”,将$
放在末尾。@user874774:不清楚您要查找的内容。如果您的目标是查看字符串是否只包含一个单词,那么是,将$
放在末尾。