我想替换键入的每个单词在字符串中的出现,
这就是我从上下文中拿走的东西...
$(document).on('keyup','textarea', function() {
this.value=this.value.replace(/\bnot\b$/gi,"_-Ni!-_ ");
});
因此,每次您在文本区域中键入“ not”一词时,它将替换掉“ not”一词,
我使用正则表达式来避免用“另一个”之类的单词替换“不”,
我现在遇到的问题是,如果您的打字机比运行的脚本慢,则该函数会替换以“。”开头的单词,
所以像“值得注意”之类的词在输入“值得”之前就被改变了,
我本想指定每种可能的结尾词的情况,例如换行,空格,标点符号等,但是我却看是否有一种更简单的方法并且无法找到它,所以在我将大量特殊字符粘贴到背面之前这个词我以为我会问社区他们是否知道一种方法
为了确保thenot
是一个完整的单词,您需要再等待一个字符并确保它不是单词字符:
(document).on('keyup','textarea', function() {
this.value=this.value.replace(/\bnot(?=\W$)/gi, "_-Ni!-_ ");
});
请注意\w
,\W
和都将\b
“单词字符”理解为字母,数字和下划线。如果只需要字母,则需要这样更改:
/\bnot(?=[^a-z]$)/gi
对于这个词的开头,您将需要更加努力,因为后视不是ECMAScript regex风格的一部分:
/(^|[^a-z])not(?=[^a-z]$)/gi
并替换为
"$1_-Ni!-_ "
它将回写上一个字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句