Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript大写字母前x个字符是否匹配特定单词?_Javascript_Jquery_Uppercase_Capitalization - Fatal编程技术网

Javascript大写字母前x个字符是否匹配特定单词?

Javascript大写字母前x个字符是否匹配特定单词?,javascript,jquery,uppercase,capitalization,Javascript,Jquery,Uppercase,Capitalization,我试图在javascript/jquery中解决如何大写字符串的前3个字符,如果该字符串以几个匹配项中的一个开始 在php中,我可以做到: $loc = (preg_match("/^(nww|nsw|esw|sew|wes)/i", $loc)) ? strtoupper( substr( $loc, 0, 3 ) ).substr( $loc, 3 ) : ucfirst($loc); 这会将nsw48751更改为nsw48751,但会将newlease更改为newlease 如何在jav

我试图在javascript/jquery中解决如何大写字符串的前3个字符,如果该字符串以几个匹配项中的一个开始

在php中,我可以做到:

$loc = (preg_match("/^(nww|nsw|esw|sew|wes)/i", $loc)) ? strtoupper( substr( $loc, 0, 3 ) ).substr( $loc, 3 ) : ucfirst($loc);
这会将nsw48751更改为nsw48751,但会将newlease更改为newlease

如何在javascript或jquery中实现这一点


谢谢

一个选项是在匹配这3个字母中的任何一个字母之间进行交替,如果没有找到,则匹配字符串中的第一个字母。然后,使用替换函数将匹配项大写:

const change=str=>str.replace(/^(?:nww | nsw | esw | sew | wes |[a-z])/i,match=>match.toUpperCase();
console.log(更改('nsw48751'));

console.log(change('newlease'))一个选项是在匹配这3个字母中的任何一个字母之间进行交替,如果没有找到任何一个字母,则匹配字符串中的第一个字母。然后,使用替换函数将匹配项大写:

const change=str=>str.replace(/^(?:nww | nsw | esw | sew | wes |[a-z])/i,match=>match.toUpperCase();
console.log(更改('nsw48751'));
console.log(change('newlease'))可以用来检查正则表达式是否满足您的条件,顺便说一句,CertainPerformance的解决方案非常棒!
var string1='nsw48751';
var string2=‘newLetter’;
函数foo(str){
r=/^(西北、新南威尔士、esw、sew、wes)/i
if(r.test(str)){
返回str.substring(0,3).toUpperCase()+str.substring(3)
}
返回str.substring(0,1).toUpperCase()+str.substring(1)
}
console.log(foo(string1));
console.log(foo(string2))可以用来检查正则表达式是否满足您的条件,顺便说一句,CertainPerformance的解决方案非常棒!
var string1='nsw48751';
var string2=‘newLetter’;
函数foo(str){
r=/^(西北、新南威尔士、esw、sew、wes)/i
if(r.test(str)){
返回str.substring(0,3).toUpperCase()+str.substring(3)
}
返回str.substring(0,1).toUpperCase()+str.substring(1)
}
console.log(foo(string1));

console.log(foo(string2))就像一个旁白,但是如果字符串栏的其余部分前3个字符是数字的,那么您可以调用
toUpperCase()
并完成。就像旁白一样,但是如果字符串栏的其余部分前3个字符是数字的,那么您可以调用
toUpperCase()
并完成。,谢谢这太好了:)谢谢这太好了:)