0
Test 1
Test & Test 2
Test,Test 2
Test-Test2
Test/Test2
Test. Test2
Test 1 Test 2 Test 3
Test 1 Test 2 - Test 3, Test 4, Test 5

我有以下字符串数组,我需要通过 javascript 正则表达式替换它以将所有这些转换为小写并用-.

预期产出

test-1
test-test-2
test-test2

我一直在使用这个直到现在

link = str.replace(new RegExp("[^a-zA-Z0-9-]", "gi"), "-").toLowerCase();
link = link.replace("--", "-");
4

2 回答 2

2

我将从-正则表达式中删除 ,并添加+来描述要替换的一个或多个字符。

var str = "Test 1 Test 2 - Test 3, Test 4, Test 5"
var regex = new RegExp("[^a-zA-Z0-9]+", "gi");

str.replace(regex, "-").toLowerCase(); // "test-1-test-2-test-3-test-4-test-5"
于 2013-05-31T17:28:13.127 回答
0

使用.toLowerCase这个正则表达式:/[^a-z0-9-]+/g

'Test & Test 2'.toLowerCase().replace(/[^a-z0-9-]+/g, '-')
#=> 'test-test-2'

+将匹配 1 次或多次出现,因此它将替换所有连续字符,并用单个字符替换它们-

于 2013-05-31T17:28:52.117 回答