在javascript中,有一种方法可以区分字母和其他字符吗?
In javascript, is there a way to distinguish letters from other characters?
我想把"you"换成"your sister"。然而,像"youtube"这样的词必须保持不变。所以我决定使用
replace(/ you /, " your sister ");
然而,现在字符串"I love you!"保持不变,以及任何不跟在单词you后面加空格的字符串。我想知道"你"后面的字符是不是字母。如果是,保持不变,如果不是,改成"your sister"
什么是"字母" ?这个问题并不像乍一看那么愚蠢:例如,许多语言将7
视为数字,但在一些正字法(如Squamish)中,它实际上是一个字母。因此,在这种情况下,你需要更准确地描述你的意思,以便回答可以量身定制(你做得很好,但你的标题仍然是暗示性的)。
要回答实际的问题,您可以执行全局正则表达式替换,例如:
const replaced = input.replace(/'byou'b/g, 'your sister');
使用这个,字符串"you"将被字符串"your sister"替换,但只有当它被"word boundaries"包围时才会被替换。(空格、句首/句尾、符号等)。
我们还需要使用/.../g
修饰符(用于"全局匹配"),以便替换作用于所有 "you"的实例,而不仅仅是第一个
需要字边界字符'b
s.replace(/'byou'b/g, 'your sister')
您正在寻找'b
(字边界):
slice(/'byou'b/, "your sister")
但slice
是什么?我猜你是指
string.replace(/'byou'b/, "your sister")
'b
匹配单词字符(实际上是字母数字加下划线1)和非单词字符之间的单词边界。
所以/'byou'b/
会匹配"you"当它不是另一个单词的一部分。
1这是出于"历史原因":它使匹配C中允许的常用字符集(如编程语言标识符)变得容易。
相关文章:
- 包含特殊字符 (!,@,#,&) 不包括其他特殊字符
- JavaScript不显示剩余字符,但适用于其他页面
- JSON编码一个包含#和其他特殊字符的字符串
- Regex-仅当字符串包含任何其他字符时才允许使用某些字符
- Javascript:用其他字符替换反斜杠和双引号
- 正则表达式不允许所有特殊字符,但允许其他语言,如希伯来语 JavaScript
- Reg ex 表示特定字符之后和其他字符之间的任何内容
- 错误:“JSON.parse:JSON 数据第 1 行第 1 列的意外字符”,当包含其他 php 文件时
- JavaScript Regex - 将包含某些字符且不包含其他字符的字符串匹配
- 检测由 shift 键和其他键组合产生的特殊字符
- Reg Ex 不会验证我是否将 # 与其他字符或数字一起使用
- Regex匹配前面或后面没有其他字符的精确单词
- 使用其他javascript删除字符串中某个字符的所有实例
- 其他形式的字符
- 使用jquery变量替换句点、冒号或任何其他字符的通用regexp
- 使用油脂/夯实键(或其他扩展)来省略web元素中的某些字符
- 使用JavaScript删除HTML字母或其他字符
- JSON:处理textArea中的换行符(和其他无效的JSON字符)
- RegEx查找一个字符的所有出现,而不是在两个其他字符之间
- 为什么特殊字符会自动转换为字符串值中的其他字符