Javascript 从最后一个字符中获取第四个字符的正则表达式
我一直在尝试得到一个正则表达式,它可以选择字符串中的最后四个字符 例如,如果“system”是一个我想选择“s”的字符串,我无法检查是否从开始,因为从开始的字符数不是固定的 到目前为止,我只访问了:Javascript 从最后一个字符中获取第四个字符的正则表达式,javascript,regex,Javascript,Regex,我一直在尝试得到一个正则表达式,它可以选择字符串中的最后四个字符 例如,如果“system”是一个我想选择“s”的字符串,我无法检查是否从开始,因为从开始的字符数不是固定的 到目前为止,我只访问了:/.{3}$/g,但它使用的是最后三个字符,而不是后面的字符 有人能帮我吗? const reg=/.*(。{3}$/g const str='这是astring' console.log( str.replace(注册号,'1') ) const reg=/.*(。{3}$/g const str=
/.{3}$/g
,但它使用的是最后三个字符,而不是后面的字符
有人能帮我吗?
const reg=/.*(。{3}$/g
const str='这是astring'
console.log(
str.replace(注册号,'1')
)
const reg=/.*(。{3}$/g
const str='这是astring'
console.log(
str.replace(注册号,'1')
)
您必须使用一个组:
/(.).{3}$/
这里的完全匹配将是stem
,第1组将是s
(您可以在这里看到:)
您可以按如下方式解决此问题:
var matches = 'system'.match(/(.).{3}$/); //=> ['stem', 's']
if (matches[1] === 's') {
// ...
}
您必须使用一个组:
/(.).{3}$/
这里的完全匹配将是stem
,第1组将是s
(您可以在这里看到:)
您可以按如下方式解决此问题:
var matches = 'system'.match(/(.).{3}$/); //=> ['stem', 's']
if (matches[1] === 's') {
// ...
}
为什么不这样使用子字符串:
function lastFourLetters(str)
{
if (str.length < 5)
return str;
return str.substring(str.length - 4 , 4);
}
函数lastFourLetters(str)
{
如果(str.length<5)
返回str;
返回str.substring(str.length-4,4);
}
为什么不这样使用子字符串:
function lastFourLetters(str)
{
if (str.length < 5)
return str;
return str.substring(str.length - 4 , 4);
}
函数lastFourLetters(str)
{
如果(str.length<5)
返回str;
返回str.substring(str.length-4,4);
}
尝试使用/([a-z])。{3}$/g
然后在结果中,可以使用来自第一个捕获组的值。更改类以防需要更广泛或不同的选择尝试使用/([a-z])。{3}$/g
然后在结果中,可以使用来自第一个捕获组的值。更改类以防需要更广泛或不同的选择(=.{3}$)
可用于整个表达式匹配,而不仅仅是捕获组。(=.{3}$)
可用于整个表达式匹配,而不仅仅是捕获组。我认为JS在正则表达式中没有回溯。我建议str.charAt(str.length-4)
或s.substr(s.length-4,1)
@WiktorStribiż查看substr
的任何特殊原因?@WiktorStribiżew:您可以编写s.substr(-4,1)
(当起始索引为负时s.length
是隐式的)@CasimiretHippolyte我不确定,因此我不认为。如果不准确,请道歉。是的,我指的是向后看。抱歉,我认为JS在正则表达式中没有回溯。我建议str.charAt(str.length-4)
或s.substr(s.length-4,1)
@WiktorStribiż查看substr
的任何特殊原因?@WiktorStribiżew:您可以编写s.substr(-4,1)
(当起始索引为负时s.length
是隐式的)@CasimiretHippolyte我不确定,因此我不认为。如果不准确,请道歉。是的,我指的是向后看。抱歉搞混了