我想用“你的妹妹”代替“你”。然而,像“youtube”这样的词必须保持不变。所以我决定使用在JavaScript中,有没有一种方法来区分其他字符的字母?
replace(/ you /, " your sister ");
但是现在字符串“我爱你!”保持不变,以及任何字符串,其中没有后跟字符串的空格。我想知道“你”这个词后面的字是否是一个字母。如果是,请保持不变,如果不是,请将其更改为“您的妹妹”。
我想用“你的妹妹”代替“你”。然而,像“youtube”这样的词必须保持不变。所以我决定使用在JavaScript中,有没有一种方法来区分其他字符的字母?
replace(/ you /, " your sister ");
但是现在字符串“我爱你!”保持不变,以及任何字符串,其中没有后跟字符串的空格。我想知道“你”这个词后面的字是否是一个字母。如果是,请保持不变,如果不是,请将其更改为“您的妹妹”。
什么是“字母”?这不像听起来那么愚蠢:作为一个例子,许多语言都把7
当成一个数字,但是有一些拼写字母实际上是一个字母。因此,在这种情况下,您需要描述您的意思,以便可以根据您的要求定制答案(您在这方面做得很好,但标题仍然具有启发性)。
要回答的实际问题,你可以做一个全局正则表达式替换,如:
var replaced = input.replace(/\byou\b/g, 'your sister');
利用这一点,字符串“你”将被“你的妹妹”所取代,但只有当它的包围通过“词边界”(空格,句子的开始/结束,符号等)。
我们还需要使用/.../g
修饰符(用于'全局匹配'),以便替换作用于“您”的所有实例,而不仅仅是第一个。
你需要单词边界字符\b
s.replace(/\byou\b/g, 'your sister')
虽然可能带有'g'修饰符 –
是的,可能:) –
您正在寻找\b
(字边界):
slice(/\byou\b/, "your sister")
但什么是slice
?我假定你的意思是这样
string.replace(/\byou\b/, "your sister")
\b
单词边界匹配 - 单词字符之间(实际上是字母加下划线)和非单词字符。
因此/\byou\b/
会匹配“你”,当不是另一个词的一部分。
这是“历史原因”:它使人们容易平时一套用C允许像编程语言识别的字符相匹配。
str.replace(“you”,“your sister”); –
@torazaburo他们可能也在寻找一个有用的链接或完整的答案如何使用它,因为'\ b'只能用于真正的正则表达式调用=) –