我试图从 javascript 的文本区域中删除一串文本。我要删除的文本格式如下:
类别:属性
颜色:绿色 <- 示例!
var catTitle = 'color';
var regexp = new RegExp(catTitle + '\:[.]*$', "g")
textarea.value = textarea.value.replace(regexp, "");
由于属性可以是任意长度,我需要我的正则表达式继续前进直到新行。我认为 [.]*$ 可以将任何字符匹配到新行;但是,它似乎不起作用。
如有任何帮助,我们将不胜感激。
最佳答案
.
inside 一个字符类 ([]
) 匹配自身——它不再是通配符。此外,正则表达式区分大小写,除非另有说明(“i”标志)并且 :
(在该上下文中)并不特殊,因此不需要转义。
[a-z]
或 \w
可能适合用于匹配属性,具体取决于。
它可能会像这样:
var catTitle = "color"
var re = new RegExp(catTitle + ':[a-z]+$', "gi")
re.test("Color:Green") // true
re.test("color:Red") // true
re.test("color: Red") // false, put perhaps this should be accepted?
re.test("color:") // false
re.test("foo:bar") // false
我还将限定符从 *
更改为 +
—— 注意“color:”的大小写以及它是如何被拒绝的。这也将拒绝非英语字母表中的颜色。
快乐编码。
关于Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324160/